Почему Debian вылетает с OOM
Недавно я обновил свой сервер с Debian squeeze i386 до wheezy amd64, переустановив и реконфигурировав. Кроме того, я хотел иметь возможность запускать виртуальных гостей, поэтому я также установил XEN.
Тогда у меня возникла проблема, заключающаяся в том, что время от времени OOM killer уничтожал несколько процессов на моем Dom0. Затем я перезапустил и отключил несколько служб (таких как apache2, mysql, postgresql,...). Теперь кажется, что никакие процессы больше не разрушаются (неуверенно, поскольку это происходит не регулярно, а случайным образом). НО: если я сильно нагружу машину (доступ к зашифрованной файловой системе), активируется OOM killer.
К сожалению, система больше не работает после возникновения проблемы. Поэтому я не могу получить доступ через ssh для расследования. Также физическое расследование через консоль в большинстве случаев зависает.
у меня есть atop
демон запускается каждую минуту, поэтому я могу видеть потребление памяти и свопинга перед сбоем: ОЗУ составляет 1 ГБ (880 МБ) в общем (статически выделено для Dom0, без всплывающих окон) где aprox. 440 МБ это кеш. Некоторые МБ являются буферами и около 20 МБ свободны. Обмен составляет всего 25 ГБ и абсолютно бесплатный.
Что я не понимаю: почему ядро не убивает часть кеша, если требуется больше оперативной памяти. Это кеш, поэтому все, что может произойти, это проблема производительности, но система останется стабильной. Таким образом, система падает. Кроме того, почему ненужные разделы памяти, используемые другими программами, не помещаются в swap? Там должно быть достаточно места, чтобы делать то, что вы хотите.
Иногда я видел на консоли сообщение о том, что задача (jbod/raid5 или что-то подобное) блокировала (?) Более 120 секунд. Я не уверен, является ли это причиной или следствием проблемы ООМ.
Теперь мои вопросы:
- Может ли это быть проблемой XEN?
- Может ли это быть аппаратная проблема? RAM или HD?
- Что я могу сделать, чтобы избежать будущих сбоев?
Изменить: я просто попытался воспроизвести ошибку. Сбой произошел, но на этот раз (я не знаю точно, были ли другие ошибки в других ситуациях) зависшей программой был xenwatch. Так что нет программы доступа к HD.