четверг, 5 ноября 2009 г.

ZFS - где моя память??? :)

#kstat zfs:0:arcstats:size
module: zfs instance: 0
name: arcstats class: misc
size 2420348928

2GB
памяти под кэш забрала ZFS. С одной стороны это и не плохо, но память нужна и другим приложениям. Убавить аппетиты можно так - в /etc/system запишем
set zfs:zfs_arc_max=0xЗНАЧЕНИЕ
где ЗНАЧЕНИЕ - это шестнадцатеричное представление объема отводимой памяти под кэш zfs

А вот как бы установить это огранчиение без перезагрузки сервера??

Вот здесь сценарий просмотра ARC-статистики ZFS

5 комментариев:

Unknown комментирует...

А так не прокатит?

export zfs:zfs_arc_max=0xЗНАЧЕНИЕ

Александр комментирует...

А сам пробовал? Хочешь сказать, что export отработает на уровне ядра для модуля zfs?:))

Unknown комментирует...

Далее все зависит от реализации этих вещей в модуле ядра, считывает он эти значения на этапе загрузки или мониторит в процессе работы.

Но опять же, в данном случае требуется менять настройки ARCa, а для него вроде есть arc_tune, который вроде как бы позволяет менять настройки на ходу.

Unknown комментирует...

Да, и тут есть такой момент:
http://www.solarisinternals.com/wiki/index.php/ZFS_Evil_Tuning_Guide#Limiting_the_ARC_Cache

This syntax is provided starting in the Solaris 10 8/07 release and Solaris Nevada build 51 release.

Set dynamically:

echo zfs_prefetch_disable/W0t1 | mdb -kw

Revert to default:

echo zfs_prefetch_disable/W0t0 | mdb -kw

Похожий синтаксис должен присутствовать и для изменения требуемого Вами параметра.

Анонимный комментирует...

Даже если и удастся поменять, оно не будет иметь никакого эффекта до ребута. В 11.2 этот параметр заменили на user_reserve_hint_pct и для изменения есть готовый скрипт http://blog.zach.st/2014/08/02/control-the-size-of-the-zfs-arc-cache-dynamically.html