虚拟化 (KVM) 和过多的缓存 RAM

虚拟化 (KVM) 和过多的缓存 RAM

我已经通过 KVM-libvirt (virt-manager) 设置了一台装有 Windows 10 的虚拟机,但在主机端出现了奇怪的行为。我正在运行具有 24GB RAM 的 64 位 Arch 主机,其中 12 个分配给它,另外 12 个分配给虚拟机。

启动虚拟机并让它静置一段时间(不会太长,可能一个小时)后,我的整个主机的剩余 RAM 就会被缓冲/缓存。例如,现在我从以下地方得到这个free -m

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

在启动虚拟机之前,我运行了几个应用程序,但它们的 RAM 不超过 2GB 左右,从那以后没有打开任何新内容,只是一些正常的网页浏览(实际上写这个问题)。

现在,我已经阅读了很多有关 Linux 缓存 RAM 的内容,因为空闲 RAM 是浪费 RAM 之类的,但这导致主机上运行的几乎所有内容都被交换。这对我来说是一个大问题,因为一切都会变得所以慢的。

据我所知,RAM 缓存不应导致内存交换。我知道linux应该比关于高效的内存利用率,例如我不应该清除交换和/或缓存...但是,将所有内容都换出从而大大减慢系统速度对我来说听起来既不聪明也不高效。

可能发生了什么? Linux 是否缓存虚拟机磁盘访问,这就是为什么它总是使用我的 RAM 的全部剩余空间? VM 安装在磁盘映像中,我应该尝试为其使用单独的物理磁盘吗?

相关内容