PfSense берет много памяти на proxmox

Привет, у меня mini pc с i5 10700 16 gb памяти. Поставил proxmox, на него pfsense, дал ему 4gb хотя на сайте говорит 2gb должно хватить. Но когда в proxmox смотрю то фигачит до краёв, все 4gb что есть все постоянно занято.

Процессор че-то около 20%. Работает стабильно Все четко, а память зашкаливает. Есть какие то соображения? Так и должно быть?

В веб-интерфейсе Proxmox вы видите выделенную память для конкретной VM, а не память, которая используется. Чтобы посмотреть память, которая используется - смотрите в админке PfSense

В общем все у вас нормально. У меня аналогичная ситуация. Особенно быстро в админке PVE заканчивается память для ОС использующих ZFS. Это нормальное поведение. Чтобы понять реальное потребление - смотрите в самой VM

Да и в самой ВМ тоже надо разделять понятия free памяти и available. Так как бОльшая часть оперативки обычно уходит под кэш, и это место тоже считается занятым. Хоть и может быть освобождено по первому требованию.

Все норм. Это особенность ZFS. Она кеширует для производительности дисковой подсистемы. Но память освободится по требованию ядра. Проверьте использование подкачки

Понял, тогда можно уменьшить до 2х gb? Что бы больше было для других машин? Или лучшея оставить как есть?

Я бы оставил хотя бы 4. У меня виртуализирован OPNsense и я обратил внимание что для му не всегда хватает 4 ГБ. Поэтому выделяю 6 ГБ для запаса. Насколько я понимаю PfSense и OPNsense похожи по требованиям. Но тут смотрите сами. Попробуйте 2 и помониторьте

Там можно выполнить команду top в терминале, не знаю, что там кешировать, но виртуалки обычно съедают все доступные ресурсы

Tasks: 2258 total,   5 running, 1803 sleeping,   0 stopped, 450 zombie
%Cpu(s): 17,5 us, 11,7 sy,  0,0 ni, 62,9 id,  7,9 wa,  0,0 hi,  0,0 si,  0,0 st 
MiB Mem :  62184,1 total,  24310,9 free,  14041,0 used,  25603,5 buff/cache     
MiB Swap:   8192,0 total,   5542,1 free,   2649,9 used.  48143,1 avail Mem 

Вот тут свободно 24ГБ из 62ГБ, PVE будет говорить, что виртуалка заняла 62-24=38ГБ, хотя, из этих 38ГБ по факту, 25ГБ занято под буферы и кэш. Система видит, что есть доступные ресурсы и использует их, при включении балунинга и недостатке ресурсов на хосте гипервизор будет заставлять сбрасывать этот кеш для перераспределения между другими клиентами.

1 лайк

@KRom спасибо но как то не очень понятно, можно немножко для тех кто в танке? На пальцах так сказать, чтоб понять как оно работает.

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

Ниже виден прирост скорости при копировании файла

/data/distrib/DaVinci_Resolve ⌚ 12:11:28
$ pv davinci-resolve-studio_20.2.3-smrd1.8.3_amd64.deb> /dev/null 
7,81GiB 0:00:03 [2,38GiB/s] [============================================================================================================================================================================>] 100%            

/data/distrib/DaVinci_Resolve ⌚ 12:11:45
$ pv davinci-resolve-studio_20.2.3-smrd1.8.3_amd64.deb> /dev/null
7,81GiB 0:00:00 [12,2GiB/s] [============================================================================================================================================================================>] 100%            

Если бы оперативки реально не хватало бы, то при втором чтении скорость была бы аналогичной первой, а так почти 8ГБ удалось выделить под кеш

Ну так а получилось проверить на PfSense, может не с этим связано?

2 лайка

Спасибо большое дошло! На Pfsense пишет что из 4гб используется 15%. Мне как бы не жалко, могу оставить все 4 если есть смысл в этом. Лтшь бы хватало и работало стабильно.

Смотря для чего используется PfSense. Если просто как роутер, то ему много и не надо. У меня он был в качестве фильтрующего прокси-сервера с большими стоп-листами. Потребление памяти было немаленькое. Я ему порядка 6-8 ГБ выделял, насколько помню. И то не всегда хватало.

proxmox не умеет показывать реально используемый объем RAM машин на *BSD

там только из самой машины смотреть, qemu агент не решает.

и как уже писали - сильно зависит от сервисов которые запущены.