OOM Killer в Proxmox: неожиданная остановка ВМ
Я уже подзабыл, как в других гипервизорах обрабатывается подобная ситуация. Hyper-V вроде бы не даёт запустить виртуальную машину, если для её работы нет свободной памяти. Я всегда всё везде с запасом распределяю, поэтому практически не сталкиваюсь с такими ситуациями.
А тут прошляпил. Добавил виртуалку, запустил, настраиваю. Через некоторое время вижу от мониторинга сообщение, что один сервис лёг, его виртуалка недоступна. Вначале даже не понял, в чём дело. Запустил её снова, зашёл, всё проверил. В логах чисто, как-будто её аварийно вырубили, что на самом деле и произошло.
Пошёл проверять гипервизор и там в логах увидел, что виртуалку аварийно прибил OOM Killer почти сразу после запуска новой, для которой не было свободной памяти.
Странно, что в самой платформе управления виртуальными машинами нет никаких проверок на этот счёт. Можно было бы предупредить либо во время создания, либо при запуске, что на гипервизоре не хватает памяти для нормальной работы всех запущенных виртуальных машин. Для общего хранилища такое предупреждение выводится, когда суммарно забронированное место для всех дисков превышает реальный объём хранилища. А для оперативной памяти предупреждений нет.
Будьте аккуратны при распределении памяти между виртуальными машинами в PVE. Я теперь внимательнее буду это делать и проверять всё вручную. Аварийно прибить виртуальную машину - сильный ход. Понятно, что это встроенный механизм в Linux, но я думал под систему виртуализации его как-то изменили и доработали, чтобы такого не было. Как оказалось - нет. Ни предупреждения, ни завершения работы, ни заморозки. Просто сразу kill.
#proxmox