限制/禁用虚拟机中的 Linux 磁盘缓冲

限制/禁用虚拟机中的 Linux 磁盘缓冲

有没有一种智能方法可以限制 Linux 系统中的缓冲/缓存并使其或多或少地连续写入磁盘?

我这么问是因为我在一台物理 Linux 机器上运行多个 Linux 虚拟机。 Linux 的默认缓冲/缓存机制导致所有这些虚拟机都将写入缓存到磁盘,直到它们决定清除所有内容为止。当多个虚拟盒子同时开始刷新其缓冲区时,就会出现问题。此时物理机上的硬盘变得过度充电,我面临着物理机上 90% 的 wa(等待 I/O)CPU 时间被浪费。所有虚拟机都会冻结几秒钟,导致某些 TCP/IP 连接中断等。

我想禁用虚拟子系统中的缓存并在物理系统中执行所有缓存,因为它正在访问物理磁盘。有什么提示吗?

添加:虚拟机的磁盘是通过浏览工作站菜单创建的,通常接受(如果我没记错的话)默认值。磁盘映像存储在 XXX-s000.vmdk 到 XXX-s100.vmdk 等文件中。它们在虚拟 Linux 盒子中被视为 scsi 驱动器。

我使用 vmware station 10 进行虚拟化。据我所知,这些机器上没有安装 vmware guest 工具。

答案1

首先,在(所有)来宾上安装 VMware 来宾工具。

这将使 VMware 在这些来宾磁盘、NIC、屏幕和主机之间实现更高效的接口。因此,您可能会发现争用问题大大减少。

在 Debian 风格的发行版上,软件包名称是open-vm-tools, 看https://github.com/vmware/open-vm-tools

相关内容