是否可以监视/限制KVM客人的带宽? 我想给我的服务器上的人虚拟机,但我想小心不要超过我的每月带宽限制。 我唯一可以find支持的地方就是“云”框架,我猜测我在Linux中缺less一些简单的东西,或者我需要和上面的路由器(我无法访问)通信。
我build议使用libvirt来pipe理你的KVM虚拟机。 它使得整个事情比简单的QEMU / KVM更容易,并提供了很好的CPU,IO和networking统计 。 你会喜欢在libvirt框架之上工作的工具,例如virt-top和virt-manager 。
要从脚本收集虚拟机接口统计信息,可以使用virsh命令行界面来libvirt或某些语言API。 virsh命令的格式如下所示:
virsh domifstat VMNAME IFNAME
其中VMNAME是虚拟机的名称,IFNAME是(虚拟)networking接口的名称。 要找出networking接口的名称,您可以执行以下操作:
virsh dumpxml VMNAME
在生成的XML输出中,查找您的networking接口定义。 寻找如下的一行:
<target dev='vnet0'/>
在这种情况下,您的IFNAME将是“vnet0”。
或者,你可以使用一个统计收集守护进程,比如collectd ,它支持监视libvirt统计信息,但是在这种情况下,一些简单的shell脚本存储“virsh domifstat”的输出就足够了。