?

Log in

No account? Create an account
Previous Entry Share Flag Next Entry
Тюнинг ZFS
rubuntu
Вообще говоря для ZFS рекомендуется более 8Гб оперативной памяти, чтобы она смогла себя раскрыть.
Но приходится настраивать ZFS на машинах с маленьким объемом оперативной памяти например с 1Гб и даже меньше. Минимальный объем который необходим для работы ZFS это 512Мб. Здесь я хочу привести несколько советов по тюнингу ZFS.
Что может быть если этого не сделать? Предположим Вы настроили ZFS на сервере с 1Гб оперативной памяти. Все загрузилось, но когда вы начинаете интенсивно работать с диском, система вдруг падает в kernel panic.
Чтобы этого не случилось необходимо дописать ряд параметров в /boot/loader.conf

vm.kmem_size_max="384M"
vm.kmem_size="384M"
vfs.zfs.arc_max="40M"
vfs.zfs.prefetch_disable=1

vm.kmem_size, vm.kmem_size_max - участок памяти используемый ядром для выделения памяти, например, при использовании malloc. Размер этой памяти виртуальный, но постарайтесь сделать его меньшим вашей оперативной памяти.
vfs.zfs.arc_max. Вообще ARC это то где  хранятся кешированные данные пулов (pool). Работа с этим параметров сказывается на производительности, но в случае если у нас памяти мало, то этот параметр можно уменьшить.
vfs.zfs.prefetch_disable=1 - отключение режима prefetch.  Режим prefetch - режим, когда система "угадывает" что будет прочитано и заранее читает, что может значительно ускорить работу файловой системы. На amd64 при памяти менее 4Гб он отключается автоматически.
Некоторые советуют отключить ZIL добавлением vfs.zfs.zil_disable="1". Не делайте этого! Отключение ZIL может помочь только в редких случаях, в большинстве случаев он приведет к резкой потере производительности.

Так же добавлю, что лучше для работы с ZFS иметь не менее 1Гб оперативной памяти и использовать amd64.
Для более глубокого тюнинга рекомендую ZFS Evil Tuning Guide