В каких подкаталогах / должно быть отключено сжатие в корневой файловой системе btrfs?
Представьте, что вы настроили свою корневую файловую систему на btrfs со значениями по умолчанию Ubuntu 14.10 (один подобъем для /
и один для /home
) и вы хотите сжать и дедуплицировать как можно больше. Какими каталогами нужно управлять как надлежащим объемом и отключать для сжатия? Две цели "сжимают столько, сколько возможно" и пропускают сжатие определенных частей по соображениям производительности, являются взаимоисключающими, поэтому позвольте мне прояснить вопрос:
- Определенные наборы файлов и каталогов, похоже, страдают от сжатия (например,
dpkg
чтение списка пакетов после обновления занимает до 30 минут (сzlib
сжатие послеbtrfs filesystem defragment -c
) отключение сжатия для/var/lib/dpkg/
ускоряет работу в 1000 раз. Существуют ли еще примеры такого воздействия на производительность (dpkg
база данных не очень производительная). - Каталоги, содержащие исходный код (
/src/
и другие) являются хорошими кандидатами на сжатие, хотя они будут в основном читаться при компиляции системы, и, следовательно, нагрузка на ЦП будет высокой, и потребуется выполнить декомпрессию с интенсивной нагрузкой на ЦП. Как оценить или измерить компромисс?
1 ответ
Я считаю, что сжатие в расчете на единицу объема еще не доступно. Из вики BTRFS:
Большинство параметров монтирования применяются ко всей файловой системе, и вступают в силу только опции для первого подобъема, который будет смонтирован. Это связано с отсутствием реализации и может измениться в будущем.
Это означает, что (например) вы не можете установить для каждого подобъема
nodatacow
,nodatasum
, или жеcompress
используя параметры монтирования. Это должно в конечном итоге быть исправлено, но оказалось, что это трудно реализовать правильно в рамках VFS Linux.
Если у вас нет информации об обратном, ваш план не будет работать (пока).