openstack中提供了对整台虚拟机instance进行网络限速的方法,但我没有找到针对虚拟要的单个网卡进行QoS的限速方法,后来发现Libvirt有这个功能:
查看虚机接口的限速设置
# virsh -c qemu+tcp://compute10/system domiftune vm_id tap3b790cc5-b0
其中 3b790cc5-b0 为 port id 的前 10 位
设置虚机接口限速
# virsh -c qemu+tcp://compute10/system domiftune vm_id tap3b790cc5-b0 --inbound <average bandwidth>,<peak bandwidth>,<burst size> --outbound <average bandwidth>,<peak bandwidth>,<burst size> --live
average bandwidth kilobytes/second
peak bandwidth kilobytes/second
burst size kilobytes
实际限速值average, 峰值peak和突发值burst是可以合理计算出来的
建议的值:
peak=1.5*average
burst=peak/8*2=3average/8
取消限速:
目前还没找到方法可以取消限速,但是可以通过设置 --inbound -1,-1,-1
# virsh -c qemu+tcp://compute10/system domiftune vm_id tap3b790cc5-b0
其中 3b790cc5-b0 为 port id 的前 10 位
设置虚机接口限速
# virsh -c qemu+tcp://compute10/system domiftune vm_id tap3b790cc5-b0 --inbound <average bandwidth>,<peak bandwidth>,<burst size> --outbound <average bandwidth>,<peak bandwidth>,<burst size> --live
average bandwidth kilobytes/second
peak bandwidth kilobytes/second
burst size kilobytes
实际限速值average, 峰值peak和突发值burst是可以合理计算出来的
建议的值:
peak=1.5*average
burst=peak/8*2=3average/8
取消限速:
目前还没找到方法可以取消限速,但是可以通过设置 --inbound -1,-1,-1
其中取消限速可以用 python-libvirt 1.2.4+ 版本