如何控制KVM上的虚拟机stream量

我有多个虚拟机在KVMpipe理程序上运行。 其中一台虚拟机消耗了大部分可用带宽,使其他虚拟机难以使用。 我如何控制每个虚拟机的带宽使用情况? 我想保证每个虚拟机的带宽。 我想知道这是否通常在pipe理程序级别上完成,如果是这样的话? 或在虚拟交换机级别提供,我有一个。

libvirt域的规范已经包含了这个function。 您可以为传入和传出stream量指定单独的设置。 libvirt文档中给出的例子是:

<devices> <interface type='network'> <source network='default'/> <target dev='vnet0'/> <bandwidth> <inbound average='1000' peak='5000' floor='200' burst='1024'/> <outbound average='128' peak='256' burst='256'/> </bandwidth> </interface> <devices> 

您可以在http://libvirt.org/formatdomain.html#elementQoS阅读更多上游信&#x606F;

根据虚拟机如何联网(桥接或路由),您可以在主机中使用tc(8)来提供优先级排队。

有一个完整的howto可用 。

虽然这可能是矫枉过正,我认为这可能是值得研究Open vSwitch 。 它是使用OpenFlow提供第2层和第3层function的软件交换机。 这包括路由和QoS。 你可能有更好的运气,我只是想确保你知道这一点。