
У меня есть Host Machine с KVM+QEMU и несколько гостевых машин. Все гостевые машины работают под управлением Ubuntu 16.04 (установка виртуальной машины).
Моя текущая проблема в том, что потребление памяти хоста (через htop) превышает 90%. GuestVM1 имеет 1 ГБ доступной памяти. При входе в систему я вижу, что она использует всего около 50 МБ. Я запускаю sysctl -w vm.drop_caches=3
каждый час, чтобы поддерживать низкий уровень кэшей.
Однако, когда я вхожу на хост и проверяю, сколько памяти GuestVM1 использует на хосте, htop возвращает VIRT 1480 MB RES 809 MB SHR 1020 MB
.
Есть ли способ указать KVM использовать меньше памяти (на хосте), если гость не использует всю память и динамически выделяет память по мере необходимости?
решение1
Нет необходимости удалять кэши; Linux будет кэшировать данные столько, сколько ему разрешено, когда нагрузка на память становится слишком высокой, он начнет отбрасывать страницы, которые больше не нужны, и записывать обратно грязные страницы, чтобы освободить запасную память. Философия Linux заключается в том, чтобы хранить данные в кэше на тот случай, если к ним снова понадобится обратиться позже, и если память потребуется, он отбросит эти данные для памяти, необходимой вашим процессам