我在 KVM 虚拟机管理程序上运行多个虚拟机。其中一个虚拟机占用了大部分可用带宽,导致其他虚拟机难以使用。我如何控制每个虚拟机的带宽使用情况。我想保证每个虚拟机的带宽。我想知道这是否通常在虚拟机管理程序级别完成,如果是,如何完成?或者在虚拟交换机级别完成(如果我有)。
答案1
libvirt 域规范已包含此功能。您可以为传入和传出流量指定单独的设置。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
答案2
答案3
虽然这可能有点过头了,但我认为值得研究一下Open vSwitch。它是一种使用 OpenFlow 提供第 2 层和第 3 层功能的软件交换机。这包括路由和 QoS。您可能更适合使用 tc,我只是想确保您知道这一点。