KVM 上的带宽监控

Jes*_*ess 5 networking libvirt bandwidth-control ubuntu-10.04 kvm-virtualization

是否可以监控/限制 KVM 来宾的带宽?我想在我的服务器上为人们提供虚拟机,但我想小心不要超过我的每月带宽限制。我能找到的唯一支持它的地方是“云”框架,我猜我要么在 Linux 中遗漏了一些简单的东西,要么我需要与我上方的路由器交谈(我无权访问)。

sna*_*nap 9

我建议使用libvirt来管理您的 KVM 虚拟机。它使整个事情比使用简单的 QEMU/KVM 容易得多,并且还提供了不错的 CPU、IO 和网络统计信息。您会喜欢virt-topvirt-manager等工具,它们在libvirt框架之上运行。

要从脚本收集虚拟机接口统计信息,您可以使用virsh命令行接口到libvirt或某些语言 API。virsh命令的格式如下:

virsh domifstat VMNAME IFNAME
Run Code Online (Sandbox Code Playgroud)

..其中 VMNAME 是虚拟机的名称,IFNAME 是(虚拟)网络接口的名称。要找出网络接口的名称,您可以执行以下操作:

virsh dumpxml VMNAME
Run Code Online (Sandbox Code Playgroud)

在生成的 XML 输出中,查找您的网络接口定义。查找如下一行:

<target dev='vnet0'/>
Run Code Online (Sandbox Code Playgroud)

在这种情况下,您的 IFNAME 将是“vnet0”。

或者,您可以使用统计信息收集守护程序,例如collectd,它支持监控libvirt统计信息,但在这种情况下,有时存储“virsh domifstat”输出的简单 shell 脚本可能就足够了。

  • 我确实使用 libvirt。在哪里可以找到网络统计信息?我没有安装 virt-manager,它想安装 Gnome。 (2认同)
  • 我编辑了答案以包含使用 virsh 命令行工具检索 libvirt 接口统计信息的更多实用信息。另请注意,您不需要在 VM 主机上安装 virt-manager。您可以将它安装在您的工作站中并指示它连接到远程 VM 主机(或多个)。因此不需要 VM 主机上的 Gnome/X11 库。 (2认同)
  • 我发现使用此答案中的修改命令来查找界面很有用。`virsh dumpxml VMNAME | grep“目标开发者”` (2认同)