Как сделать dpkg быстрее?

17

Установка (не) пакета в системе Debian очень медленная, отчасти потому, что он работает с целой кучей (маленьких) файлов. Если не считать ускорение хранения, как мне его ускорить? Я думаю, может быть, загрузив какой-то каталог с высоким доступом в оперативную память как одно из решений, но как мне это сделать? Есть ли лучшее решение?

tshepang
источник
Какая файловая система и сколько у вас пакетов? Для больших каталогов, ext3 или выше с dir_indexопцией, или Reiser, это значительное улучшение по сравнению с ext2 или ext3 без dir_index.
Жиль "ТАК - перестань быть злым"
@Gilles Я использую ext4 и установил ~ 1400 пакетов.
Чепанг

Ответы:

17

Для этого решения вам понадобится версия dpkg по крайней мере 1.15.8.6.

Начиная с этой версии dpkg, существует новая force-unsafe-ioопция, которая отключает dpkg от вызова sync () и тому подобного между каждым пакетом. Вы можете добавить эту опцию в конфигурацию в / etc / dpkg, чтобы она всегда действовала.

Если у вас более старая версия dpkg, вы можете использовать eatmydata .

И помните, что оба эти решения небезопасны и, вероятно, приведут к потере данных в случае сбоя питания во время или вскоре после запуска dpkg.

Arrowmaster
источник
Итак, я просто добавляю force-unsafe-ioв /etc/dpkg/dpkg.cfg , и все?
Чепанг
1
В настоящее время у меня нет работающей Linux-системы (сбой блока питания), но она echo "force-unsafe-io" > /etc/dpkg/dpkg.cfg.d/force-unsafe-ioдолжна работать. Или вы можете добавить его в основной файл конфигурации dpkg, который, я думаю, /etc/dpkg/dpkg.cfg .
Arrowmaster
3
Я засек и без этой опции, и не было не заметных изменений в производительности.
tshepang
Вы пробовали это с eatmydata? Кроме того, когда я начал использовать опцию force-unsafe-io в своих chroot-файлах pbuilder, я помню очень заметную разницу.
Arrowmaster