Nikita
Владимир
ivdok
я тебя не понял
ZFS аллоцирует кусок памяти под ARC, и KVM не может от него отхватить KVM, так как он зарезервирован ARC, неважно полностью он заполнен или нет
Владимир
ivdok
Владимир
Ты не понял
Владимир
Можно указать сколько держать памяти свободной, и тогда память не алоцирована zfs
Владимир
и её может взять кто угодно
Владимир
а как её взяли и свободной нет zfs снова отдаёт память чтобы всегда держать нужный объём свободным
Владимир
/sys/module/zfs/parameters/zfs_arc_sys_free
Владимир
в дефолте оно 0, а значит zfs моет скушать всю ОЗУ и тогда ядро начнёт кикать процессы
George
(запрос памяти от pagecache ЕМНИП тоже не моментальный, безотносительно zfs)
Владимир
Владимир
Это факт
Владимир
Арк кеш в этом плане меня сильно разочаровал
A1EF
Aba
Забиваем кеш, запускам процесс который жрет память - смотрим как кеш высвобождается.
Владимир
Факт
Владимир
Если не ставить минимально свободный объем ОЗУ арк кешу срать
Владимир
Он не воспринимается как то что может быть высвобождено
Владимир
George
т.е. съесть всё и пока кеш освобождается оом может успеть, да
Aba
Владимир
Владимир
Бред
George
и оом когда памяти мало и ещё не освободили - нормален
Владимир
Den
Владимир
Он мне не нужен, у меня достаточно ОЗУ чтобы его не использовать
Владимир
Это я ещё молчу как балун нг работает если арк кеш не обуздать)
Владимир
В итоге все виртуалки будут на минимальном объёме, зато зфс сыт
A1EF
Владимир
Владимир
Повторюсь, если установить в зфс минимальный объем свободной памяти все работает хорошо
Владимир
Но в стоке хрень полная
George
Владимир
George
Владимир
Он ведь даже в хтопе не жёлтым, а зелёным, как обычная юзер память
Владимир
Сильно сбивает с толку когда не понимаешь это
George
George
а кему хочет память сразу и одним запросом
Владимир
Владимир
Я лично не раз видел как жёлтая полоса забита до конца, запускаем большой процесс и ничего не кикает
George
Владимир
Никогда, ниразу
Владимир
Всегда прям безотказно
George
в самом простом случае пейджкеш может содержать грязные данные которые ещё не сброшены на диск
Владимир
Я не первый день наблюдаю за этим
Владимир
Даже не первый год
Владимир
Владимир
Я понимаю что условности есть
Владимир
С зфс же вообще даже без условностей это не работает
George
Владимир
В зфс нормальное поведение только в случае если попросить зфс держать свободным какой-то объем озу
Владимир
И то я бы не сказал это идеал ным инструментом, но в целом норм
George
root@foton:~# zfs -V
zfs-2.1.2-pve1
zfs-kmod-2.1.2-pve1
root@foton:~# free -m
total used free shared buff/cache available
Mem: 32009 28346 2868 59 794 3173
Swap: 0 0 0
root@foton:~# arcstat
time read miss miss% dmis dm% pmis pm% mmis mm% size c avail
00:14:19 0 0 0 0 0 0 0 0 0 6.0G 6.0G 2.0G
root@foton:~# stress -m 1 --vm-bytes 6000M -t 10 --vm-keep
stress: info: [65277] dispatching hogs: 0 cpu, 0 io, 1 vm, 0 hdd
stress: info: [65277] successful run completed in 10s
root@foton:~# arcstat
time read miss miss% dmis dm% pmis pm% mmis mm% size c avail
00:14:40 6 1 17 1 17 0 0 1 25 2.8G 2.9G 6.1G
root@foton:~# free -m
total used free shared buff/cache available
Mem: 32009 24425 7254 59 328 7138
Swap: 0 0 0
root@foton:~# grep oom /proc/vmstat
oom_kill 0
Владимир
Я ведь не придумываю)
George
по arc только options zfs zfs_arc_max=6442450944 менялся
George
и кстати, свапа нет)
Владимир
Владимир
Вот и я меняю только параметр для поддержания свободной озу
Владимир
И всё работает
Владимир
А на случай если не успеет у меня есть самописный скрипт который рубит кеш
Владимир
В таком ключе все без проблем
Владимир
К слову на более чем половине установок все работает корректно, ну не считая балуна))))
Владимир
Оом случается там где есть процессы которые любят кушать)
Владимир