LINUX.ORG.RU
решено ФорумAdmin

Proxmox, ZFS и потребление RAM

 , ,


0

4

Дано:

Железный дедик Hetzner

CPU: 8x Intel Xeon E3 1245 V2

RAM: 32 Gb

Storage: 2x3 Tb ZFS RAID1

Proxmox 6.2 Latest, в нём стандартная KVM-виртуалка (SCSI VirtIO, Сеть e1000, chipset i440fx), ей выделено 10Гб RAM.

В виртуалке работает Kopano Mail Server и 10 тестовых почтовых ящиков.

Ящики синхронизировались с GMail по imapsync.

Внутри виртуалки kopano-server создаёт загрузку на RAM и немного на I/O, в процессе синхронизации, пишет письма в БД mysql.

На VM занято 8Гб RAM из 10Гб.

Вопрос:

Почему при ситуации выше на хосте тоже занято 25Гб из 32Гб, это кеши ZFS или что?

И освобождается этот кеш довольно медленно, даже когда нагрузка на VM спадает и для порядка я даже её перезагружаю.

Т.е. по сути одна VM выжирает 25Гб ОЗУ.

Зачем и почему?

★★★★★

а вы можете подключиться к дедику напрямую по ssh и запустить htop?

вот там в htop если жёлтенькая полосочка занимает всю RAM, это ничего страшного.

а если зелёненькая, то такого быть не должно, и стоит обратить внимание на список процессов.

Spoofing ★★★★★
()
Ответ на: комментарий от Spoofing

а вы можете подключиться к дедику напрямую по ssh и запустить htop?

Разумеется могу)

а если зелёненькая, то такого быть не должно, и стоит обратить внимание на список процессов.

This, к сожалению.

ЧСХ, почему-то процесс /usr/bin/kvm крутит мою VM в трёх экземплярах, т.е. таких процессов 3 :-)

Не знаю норма ли это)

Пока не могу понять, где косяк.

Одно известно точно, такая ситуация возникает при нагрузке на VM, выжирается память хоста и не возвращается.

Twissel ★★★★★
() автор топика
Последнее исправление: Twissel (всего исправлений: 1)

Это все при том, что Memory ballooning у меня для той виртуалки включён.

Twissel ★★★★★
() автор топика
Ответ на: комментарий от LeNiN
free -m
              total        used        free      shared  buff/cache   available
Mem:          32048       13775       18116          51         156       17909
Swap:             0           0           0

Это уже после перезагрузки ноды, за пару часов наберёт опять гигов 20.

Twissel ★★★★★
() автор топика

Лично я пока грешу на распиаренную ZFS, в целом не знаю.

Twissel ★★★★★
() автор топика

Дополню, что на этом же хосте висит «пустая» виртуалка с Nextcloud, на неё выделенно 8Гб из которых занято 600Мб, т.е. погоды она не делает.

Повторюсь, что было замечено эмпирически: только стоит увеличиться потреблению RAM и использованию I/O VM, тут же начинает расти потребление RAM на хосте.

Причем расти заметно и быстро до значений 20+ Гб.

Пошел читать про ОЗУ и ZFS.

Twissel ★★★★★
() автор топика
Ответ на: комментарий от Spoofing

если зелёненькая, то такого быть не должно, и стоит обратить внимание на список процессов.

кэш ZFS идентифицируется именно как «зелененькая полосочка». Подозреваю проблема ТСа именно в этом - нужно урезать размер кэша

Update: тред не читай - сразу отвечай

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 1)

Я не помню, что там в Linux, потому начни с sysctl -a | grep zfs. В первую очередь смотри на ARC. По линуксовым oid’ам ничего обещать не могу, но если что — пинай, может что вспомню.

mord0d ★★★★★
()
Ответ на: комментарий от Twissel

Я про поиск oid’ов, отвечающих за ARC и другие кэши.

Если в ZoL так же как и в FreeBSD, то смотри на vfs.zfs.arc_max для начала.

mord0d ★★★★★
()

free -m

Покажи вывод free -m в момент описываемой проблемы, а не сразу после перезагрузки.

LeNiN ★★
()
Ответ на: free -m от LeNiN

Да, уже понятно, что это ARC cache, смысла показывать нет.

Ограничил его, потребление ОЗУ ожидаемо уменьшилось.

Но ЧСХ, все равно на 2 Гб больше суммы ARC cache + VMs. Но это уже, видимо, кеш самой ОС.

Twissel ★★★★★
() автор топика
13 ноября 2020 г.
Ответ на: Апну тему от Twissel

Что ты подразумеваешь под репликацией? Хранение нескольких копий каждого экстента/кластера? Это есть много где. А вот насчет хранения нескольких копий, да чтоб они при этом были не просто так, а на разных физических устройствах - это уже список ощутимо поуже будет.

К примеру, у ZFS в свойствах dataset-а есть параметр copies, но на него НЕЛЬЗЯ полагаться в качестве отказоустойчивости при отказе одного из устройств пула

Для этого в ZFS есть vdev

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 3)
Ответ на: Апну тему от Twissel

Если ищешь распределённую ФС, то сейчас это практически всегда ceph. Порог вхождения повыше, чем у GlusterFS, но дальше длинный список преимуществ.

melkor217 ★★★★★
()
Ответ на: комментарий от Twissel

Ограничил его, потребление ОЗУ ожидаемо уменьшилось.

ARC автоматом вытесняется при нехватке памяти вплоть до zfs_arc_min, которое обычно стоит на нуле.

Если у тебя основная часть I/O идёт на ZFS, то лучше память отдать под ARC, чем линуксовые кеши.

melkor217 ★★★★★
()
Ответ на: комментарий от Pinkbyte

А вот насчет хранения нескольких копий, да чтоб они при этом были не просто так, а на разных физических устройствах.

this

Ну понятно, или ZFS или Ceph, третьего не дано.

Спасибо.

Twissel ★★★★★
() автор топика
Ответ на: комментарий от melkor217

ок, т.е. пугаться, что занято больше половины ОЗУ не стоит?

Twissel ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.