如何限制虚拟机客户的磁盘访问带宽?

如何限制虚拟机客户的磁盘访问带宽?

我的 Ubuntu(主机)上有一个 Virtualbox,它为一些 Windows 客户操作系统提供服务。
有时正在运行的 Windows 虚拟机会开始大量访问磁盘,这会阻止我进入主机环境。我想限制对物理硬盘的数据访问的读/写。

我该怎么做?

答案1

从 4.0 版开始,我们可以限制 Virtual Box 访问磁盘映像的带宽(请参阅Virtual Box 使用手册了解详情)

我们需要先创建一个带宽组(在下面的例子中,名为“Limit”,为 20 MB/s):

VBoxManage bandwidthctl "VM name" add Limit --type disk --limit 20M
VBoxManage storageattach "VM name" --storagectl "SATA" --port 0 --device 0 --type hdd
                                   --medium disk1.vdi --bandwidthgroup Limit
VBoxManage storageattach "VM name" --storagectl "SATA" --port 1 --device 0 --type hdd
                                   --medium disk2.vdi --bandwidthgroup Limit

如果出现此错误:

VBoxManage: error: Cannot register the hard disk '.../foo.vdi' {...} because a hard disk '.../foo.vdi' with UUID {...} already exists

然后用错误中给出的 UUID 替换磁盘映像的路径(两者应该相同),包括{}

为了进一步将磁盘访问限制为 10 MB/s,我们可以执行

VBoxManage bandwidthctl "VM name" set Limit --limit 10M 

这甚至可以在运行时完成。

相关内容