В каких подкаталогах / должно быть отключено сжатие в корневой файловой системе 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.

Если у вас нет информации об обратном, ваш план не будет работать (пока).

Другие вопросы по тегам