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

Избыточное использование памяти с помощью KVM и Libvirt

TL; DR;

Как лучше всего использовать libvirt и kvm для перегрузки памяти?

Длинная история -

У меня есть небольшой и малоиспользуемый сервер с несколькими виртуальными машинами (как хостовыми, так и гостевыми под управлением centos 7.4), большинство виртуальных машин не критичны и в основном используются для тестирования. пара виртуальных машин более важна, чем другие, и должна иметь возможность использовать почти всю память сервера, если они интенсивно используются.

Я начал с того, что просто предоставил каждой виртуальной машине максимальный объем памяти, который может когда-либо понадобиться, но это просто использовало всю оперативную память сервера и большую часть его SWAP, и, кроме того, ksmd работал как сумасшедший, хотя все виртуальные машины вместе не используют даже 30% оперативной памяти сервера.

Затем я попытался наивно настроить currentMemory примерно на 1/4 максимальной памяти для всех виртуальных машин. Но похоже, что доступная память для гостя не увеличивается, поскольку используется больше памяти, и как только гость использует всю доступную currentMemory, он начинает выходить из строя.

Затем я попытался использовать MOM из проекта oVirt, который может работать с libvirt, но информация в Интернете довольно старая (~ 2011 г.), и хотя проект, похоже, поддерживается, я обнаружил, что документация неполная, а первоначальная настройка сложна и содержит ошибки.

После того, как все заработало и посмотрел код политики balloon.rules, похоже, что он может работать для моего варианта использования, политика по умолчанию, вероятно, слишком проста, и мне нужно будет написать политику, которая будет лучше поддерживать мой вариант использования, который кажется громоздким особенно при отсутствии документации.

Итак, я надеюсь, что есть лучшее решение или подход, который мне может не хватать