%20%D0%B8%20%D0%B8%D0%B7%D0%B1%D1%8B%D1%82%D0%BE%D1%87%D0%BD%D0%B0%D1%8F%20%D0%BA%D1%8D%D1%88%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%B0%D1%8F%20%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%82%D0%B8%D0%B2%D0%BD%D0%B0%D1%8F%20%D0%BF%D0%B0%D0%BC%D1%8F%D1%82%D1%8C.png)
Я настроил виртуальную машину через 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 кэширует обращения к диску виртуальной машины и поэтому всегда использует весь остаток моей оперативной памяти? Виртуальная машина установлена в образе диска, стоит ли мне попробовать использовать для нее отдельный физический диск?