Виртуализация (KVM) и избыточная кэшированная оперативная память

Виртуализация (KVM) и избыточная кэшированная оперативная память

Я настроил виртуальную машину через KVM-libvirt (virt-manager) с Windows 10 на ней и получаю странное поведение на стороне хоста. Я запускаю 64-битный хост Arch с 24 ГБ оперативной памяти, 12 из которых выделены ему, а остальные 12 — виртуальной машине.

После запуска виртуальной машины и некоторого времени ожидания, не слишком долго, может быть, около часа, вся оставшаяся оперативная память моего хоста буферизуется/кэшируется. Например, прямо сейчас я получаю это от free -m:

              total        used        free      shared  buff/cache   available
Mem:          24064       13887         253         110        9923        9957
Swap:          4095        1313        2782

Перед запуском виртуальной машины у меня было запущено несколько приложений, но они не занимали больше 2 ГБ оперативной памяти, и с тех пор ничего нового не открывалось, только обычный просмотр веб-страниц (на самом деле, когда я пишу этот вопрос).

Теперь, я много читал о кэшировании RAM в Linux, потому что свободная RAM — это бесполезная RAM и все такое, но это приводит к тому, что почти все, что работает на хосте, подкачивается. И это большая проблема для меня, потому что все становитсятакмедленный.

Насколько я могу судить, кэширование RAM не должно приводить к подкачке памяти. Я знаю, что Linux должен быть умнее, чеммнеоб эффективном использовании памяти, например, о том, что мне не следует очищать файл подкачки и/или кэш... но выгрузка всего содержимого из файла подкачки, что существенно замедляет работу системы, мне кажется неразумным и неэффективным.

Что может происходить? Linux кэширует обращения к диску виртуальной машины и поэтому всегда использует весь остаток моей оперативной памяти? Виртуальная машина установлена ​​в образе диска, стоит ли мне попробовать использовать для нее отдельный физический диск?

Связанный контент