У меня есть хост-машина с 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, использовать меньше памяти (на хосте), если гость не использует всю память и динамически выделяет память при необходимости?
Нет никакой потребности отбросить кэши; Linux будет кэшировать данные так, как позволяют, когда давление памяти станет слишком высоким, это начнет отбрасывать страницы, которые больше не полезны и записывают грязные страницы обратно к свободному, экономят память. Философия Linux должна сохранить данные кэшируемыми на всякий случай, к этому нужно получить доступ снова позже, и если память будет требоваться, то это отбросит эти данные для памяти, которой Ваши процессы требуют