Назад | Перейти на главную страницу

Xen DomU не отвечает из-за нехватки памяти

Недавно я столкнулся с очень раздражающим эффектом: когда процесс в Xen DomU, по-видимому, потребляет всю доступную RAM / swap (это мое предположение; корень проблемы может лежать в другом месте), DomU блокируется, перестает отвечать на запросы и единственный способ вернуть его в оперативный режим - войти в Dom0 и уничтожить / воссоздать виртуальную машину. Типичная часть журнала консоли DomU:

[88751.207692] INFO: task cron:1318 blocked for more than 120 seconds.
[88751.207717] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[88875.710604] Out of memory: kill process 1315 (apache2) score 51765 or a child
[88875.710655] Killed process 1315 (apache2)

Dom0 - это Debian Lenny; DomU - это Ubuntu Jaunty. Версия Xen - 3.1.

  • Что может вызвать такое поведение? Программное обеспечение, которое по какой-либо причине (ошибки, неправильная конфигурация, неточно спрогнозированная нагрузка) потребляет больше памяти, чем вы предполагали.
  • Какие тесты мне нужно сделать, чтобы понять это? Профилирование системы, например sar (sysstat) может помочь вам определить, какой процесс использует всю оперативную память, если вы этого еще не знаете.
  • Какие параметры конфигурации (например, распределение RAM или VCPU между Dom0 и DomU) могут решить проблему? Дайте domU больше ОЗУ или, что еще лучше, установите исправный кусок подкачки.