OOM-Killer раз у раз дзвонив


5

У мене є виділений сервер, де я встановлений apache2, а також rails-passenger. Хоча у мене є 2 ГБ оперативної пам’яті і в більшості разів близько 1,5 ГБ є безкоштовним, є випадкові випадки, коли я втрачаю sshі загальне підключення, оскільки oom-killerце вбиває процеси.

Я припускаю, що відбувається витік пам'яті, але я не можу дізнатися, звідки вона походить. oom-killerвбиває apache2, mysql, passengerі все.

Вчора я зробив cat syslog | grep -c oom-killerі отримав 57 випадків!

Здається, щось серйозно руйнує пам’ять. Після перезавантаження все приходить у норму. Я підозрюю, що це може бути пов’язано passenger, але я все ще намагаюся з’ясувати це.

Чи можете ви придумати іншу причину, чи є у вас щось, що може полегшити процедуру ідентифікації витоку? Я навіть думав написати скрипт-баш, який би виконувався, cronяк і кожні 5 хвилин.


Так, поки ви не запустите скрипт, який точно визначає, які процеси наростають, коли і як швидко, це не відповідне питання.
SilverbackNet

Відповіді:


1

Ядро Linux за замовчуванням переповнює пам'ять, так що іноді програма успішно розподіляє пам'ять, недоступну, і OOM запускає і вбиває випадковий процес. Якщо вимкнути це, можливо, ви зможете визначити, який додаток краде пам'ять. Наприклад, якщо програма раптом виділяє величезну частину пам'яті, вона не вдасться (і, сподіваємось, поверне повідомлення про помилку). Інші програми також можуть не розподілити пам'ять, тому слід стежити за помилковим позитивом.

echo 2> / proc / sys / vm / overcommit_memory

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.