LINUX.ORG.RU
ФорумAdmin

Как ограничить оперативную память, забивается скриптами демона?

 


0

1

Есть у меня сервер на KVM, там крутится мой программный код, суть в том что демон (все написано на пхп) поднимается каждую минуту и запускает несколько процессов (около 10) которые висят в оперативной памяти.И так каждую минуту +10 процессов...

В итоге как я могу наблюдать по htop кол-во процессов колеблется около 311 процессов, а оперативной памяти расходуется не более 70% из 4 Гб. Сервер настраивал не я.

*** Я решил сделать зеркало моего программного кода на OpenVZ,все то же самое, те же 4 Гб, но столкнулся с проблемой: демон забивает память на 100%, включая 200 МБ дампа, чего на старом сервере не наблюдается. В итоге все работает нормально до тех пор пока оперативная + дамп не забивается маскимально, и начинает выбивать ошибки.

Вопрос: 1) это связано с тем что OpenVZ а не KVM? 2) что мне можно сделать чтобы память заполнялась не более 70% и кол-во процессов было около 311 как на старом сервере?

что мне можно сделать чтобы память заполнялась не более 70%

если бы речь шла о физическом железе или о виртуалке(но не о контейнере, а LXC и OpenVZ - это контейнеры), я бы ответил - cgroups.

Но умеет ли OpenVZ внутри контейнера cgroups - хз. Другое дело, что разве нельзя ограничить потребление памяти контейнером через сам OpenVZ(vzctl, вот это вот всё)?

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

А почему бы запускать не каждую минуту, а пореже? Или при запуске создавать lock-файл, если он ещё не создан, а при завершении удалять. В случае же, если lock уже есть, сразу завершаться с соответствующим сообщением. Или определять, запущен ли уже скрипт, грепая вывод ps? В чём проблема, если скрипты твои? А если нет и не можешь их подправить, то в чём проблема просто запускать реже?

aureliano15 ★★ ()

cgroups

UPDATE: cgroups на старом сервере не используется, пока не понятно почему там лимитируется использование оперативной.

Возможно как то на пхп можно поставить чтобы кол-во одновременных активных процессов было не более чем N?

AleXandro241 ()

Может надо переписать код так, чтобы количество процессов можно было установить заранее, а не полагаться на случайность? А то при переходе на ещё какую-нибудь другую машину, может быть новый непредвиденный результат.

vvvvvvvv ()

Через flock запускай не больше 1 процесса

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