2gusia (2gusia) wrote,
2gusia
2gusia

Categories:

Про тюнинг памяти nas4free 11.0

TL;DR: В версиях 11.0 nas4free из коробки полностью использует память и в тюнинге нуждается только если у вас что-то особенно жадное до памяти (пример - виртуальные машины). Так что не отключайте SWAP, который включается по умолчанию при стандартной установке - и можете забыть про тюнинг. Впрочем, если SWAP у вас на флешке, стоит посматривать на мониторинг его использования. И если он не нулевой - либо переносить на раздел жёсткого диска либо тюнить. А то флешку сточит как Тузик грелку.Подробнее.

Во времена версий 9.x коллективным разумом на нашей конфе был разработан тюнинг, обеспечивающий увеличение производительности. Он с успехом пережил несколько версий базовой оси, но с выходом FreeBSD 11.0 утратил актуальность. Как я писал вчера ( с картинками и примерами от камрадов), если у вас используется коробочный функционал, если много памяти если и вы не отключали включённый автоматом для страховки SWAP - система всё сделает автоматически.

Что если какие-то из этих если не выполняются?
1) Если вы отключили SWAP, то, скорее всего, в основном всё будет нормально. Но иногда (в зависимости от нагрузки и погоды на Мадагаскаре) сервисы будут уходить в панику, а система - вставать колом. Ср. nas4free 11.0 - включите SWAP, не шучу

2) Если у вас кроме функционала коробки используется что-то жрущее память, то система даже на большом её объёме будет немножко использовать SWAP. Чудесный пример привёл камрад с ником Копи-центр Сириус-Б:
мне пришлось тюнинг все таки оставить и vfs.zfs.arc_max ограничить т.к. при использовании Plex, VirtualBox, Syncthing все таки начинает использоваться SWAP , сейчас используется память на 87%
Всего памяти у него 7.8Gb (вероятно, немножко ушло на разделяемую видеопамяять). А vfs.zfs.arc_max он ограничил величиной 4400M



И что изменилось? Смотрим на распределение всей памяти


И видим (синяя линия внизу слева), что до тюнинга SWAP немножко, но использовался. Если он организован на разделе жёсткого диска - то и прекрасно. И даже IMHO оптимально. А вот если SWAP на флешке - надо что-то делать. Смотрим справа, после тюнинга. Свободной памяти стало больше. Но SWAP точить перестало.

Смотрим подробнее на zfs кеш.


Видно, что до тюнинга zfs то забирал, то отдавал память системе. После тюнинга наступила стабильность. Важный вопрос, а почему 4400M? Cколько правильно? Если SWAP на диске, то, повторю, так и оставил бы. Если на флешке - зависит от того, какой софт вы гоняете. Надо подбирать.

Ср также коммент камрада sha_kir

3) А что такое много памяти? IMHO 6Gb физической и более (хотя в примере выше из-за допссофта и на 8-ми тюнинг пришёлся ко двору). Если памяти 4Gb или менее - то во-первых, отключится упреждающее чтение и vfs.zfs.prefetch_disable примет значение 1. Это приведёт к заметному падению скорости чтения. Если физической памяти у вас 4, или даже 3Gb - я бы советовал потестить вариант с принудительно включённым упреждающим чтением (выставив в vfs.zfs.prefetch_disable в 0). Ну и, конечно, если памяти не в избытке советовал бы внимательно смотреть не используется ли SWAP на флешке. И всерьёз задуматься о включении SWAP на жёстком диске. Как его делать. Если памяти 2Gb и менее - SWAP на жёстком диске более чем рекомендован.

PS Приведу как пример выставленные моей системой по автомату значения переменных тюнинга (напомню - 16Gb физической памяти)

vfs.zfs.arc_max: 15380824064
vfs.zfs.arc_min: 1922603008
vfs.zfs.prefetch_disable: 0
vfs.zfs.txg.timeout: 5
vm.kmem_size: 16454565888
vm.kmem_size_max: 1319413950874
vm.kmem_size_min: 0



Читать любой параметр можно в командной строке через sctl, например sctl vfs.zfs.arc_max

PPS Параметры vfs.zfs.vdev.max_pending и vfs.zfs.vdev.min_pending хотя и упомянуты во FreeBSD мануале, на самом деле из кода уже удалены.
Tags: nas, nas4free, zfs, железо
Subscribe

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

  • 4 comments