Як діагностувати причини вбивчих процесів убивства


9

У мене є невеликий віртуальний приватний сервер під керуванням CentOS та www / mail / db, який останнім часом мав декілька випадків, коли веб-сервер і ssh стали невідповідними.

Подивившись на журнали, я побачив, що убивця убила ці процеси, можливо, через те, що не вистачало пам'яті та обміну.

Чи може хтось дати мені деякі вказівки, як діагностувати те, що, можливо, спричинило останній інцидент? Ймовірно, перший процес загинув? Де ще я повинен шукати?

Відповіді:


11

Ні, алгоритм не такий спрощений. Ви можете знайти більше інформації у:

http://linux-mm.org/OOM_Killer

Якщо ви хочете відстежувати використання пам'яті, рекомендую виконати команду, наприклад:

ps -e -o pid,user,cpu,size,rss,cmd --sort -size,-rss | head

Це дасть вам перелік процесів, які використовують найбільшу пам'ять (і, ймовірно, спричиняють ситуацію OOM). Видаліть, | headякщо ви хочете перевірити всі процеси.

Якщо ви покладете це на свій крон, повторюйте це кожні 5 хвилин і зберігайте його у файлі. Тримайтеся принаймні пару днів, щоб ви могли перевірити, що сталося пізніше.

Для таких критичних служб, як ssh, я б рекомендував використовувати monit для автоматичного перезавантаження їх у такій ситуації. Це може врятувати від втрати доступу до машини, якщо ви не маєте віддаленої консолі до неї.

Пощастило,
Жоао Мігель Невес


Дякую - нарешті обійдуся, щоб спробувати це після пари подальших випадків убивства, що призвело до того, що сервер став на коліна. Потрібно з’ясувати причину.
dunxd

6

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

Ця утиліта схожа на вершину стероїдів. Протягом заздалегідь встановленого інтервалу часу, він профілює системну інформацію. Потім ви можете відтворити його, щоб побачити, що відбувається. Він виділяє процеси, які складають 80% + у синьому та 90% у червоному. Найбільш корисним виглядом є таблиця використання пам’яті про те, скільки пам'яті було виділено за останній проміжок часу. Саме це мені найбільше допомогло.

Фантастичний інструмент - не можу сказати про це достатньо.

на моніторі продуктивності


1

Ця стаття про приручення oom-kille r виглядає особливо корисною. Здається, ви можете встановити пріоритети, щоб не допустити вбивств, які вбивають певних процесів (sshd був би гарним початком для VPS!)


1

OOM вбиває лише той процес, який найбільше використовує пам'ять на той час. Не обов'язково процес, який перевищив ліміт або спричинив виклик OOm.
Також Linux є розслабленим з розподілом пам'яті. AKA, якщо вашому процесу потрібно 5gb, але він використовує лише 3, Linux дозволить іншому процесу використовувати 2 його не використовується. продуктивність> надійність. тоді, коли p1 потребує його повних 5, він не може його отримати

Не екзерт. я просто маю справу з цим сам і що я знайшов

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