У меня есть небольшой виртуальный частный сервер под управлением CentOS и www / mail / db, в котором недавно было несколько инцидентов, когда веб-сервер и ssh перестали отвечать на запросы.
Просматривая логи, я увидел, что oom-killer убил эти процессы, возможно, из-за нехватки памяти и перестановки.
Кто-нибудь может дать мне несколько советов о том, как диагностировать, что, возможно, вызвало самый последний инцидент? Вероятно ли, что первый процесс убит? Где еще я должен искать?
В последнее время у меня были трудности с этим, потому что процесс (ы), на котором работает убийца, не обязательно является ошибочным. Пытаясь диагностировать это, я узнал об одном из моих теперь любимых инструментов, поверх.
Эта утилита похожа на топ на стероидах. Через заданный промежуток времени он профилирует системную информацию. Затем вы можете воспроизвести его, чтобы посмотреть, что происходит. Он выделяет процессы, которые на 80% + синим и 90% + красным. Наиболее полезным представлением является таблица использования памяти того, сколько памяти было выделено за последний период времени. Это тот, который помог мне больше всего.
Фантастический инструмент - не могу сказать достаточно об этом.
на мониторе производительности
источник
Эта статья о приручении oom-killer выглядит особенно полезной. Кажется, вы можете установить приоритеты, чтобы предотвратить убийство некоторых процессов определенными процессами (sshd был бы хорошим началом для VPS!)
источник
OOM только убивает процесс, который использует больше всего памяти в то время. Не обязательно процесс, который превысил предел или вызвал вызов OOm.
Также linux слабо выделяет память. Если ваш процесс требует 5 ГБ, но использует только 3, Linux позволит другому процессу использовать 2, который он не использует. производительность> надежность. тогда, когда p1 нуждается в его полных 5, он не может получить его
Не exeprt. просто имею дело с этим сам и что я нашел
источник