Openstack CPU/Disk/network QoS 功能
2014-01-16 14:33
393 查看
在openstack中Instance Recource Quota这个feature很早就加进来了,不过一直没有全部测试过这个feature。今天在havana版本中测试了一下这个功能。
首先,这个feature在社区的wiki如下:
https://wiki.openstack.org/wiki/InstanceResourceQuota
测试过程中发现,这个wiki有些信息已经和代码匹配不上了。
从总体上来说这个feature的功能是通过cgroup和tc来实现的。cgroup限制CPU/Disk的IO,tc来限制network IO.
首先看一下CPU限制,目前支持一下参数:
我仅测试了quota:cpu_period,测试步骤如下:
通过CLI设置了flavor的Extra Specs. 当然也可以通过dashboard设置,不过目前存在以下bug,虽然可以实际设进去,但是在dashboard上会重定向错误:
https://bugs.launchpad.net/horizon/+bug/1268860
然后使用这个flavor启动虚机,在计算节点上查看cgroup如下:
默认的cpu period是100000,这里已经改成了110000,说明起作用了。
相关代码如下:
https://github.com/openstack/nova/blob/master/nova/virt/libvirt/driver.py#L3012-3019
对于Network IO的测试我以前写过一个blog,在havana版本中没有太大的变化,只是tc的作用对象从vnetXX变为了tap设备。在此不再累述,可以参考以下blog:
http://blog.csdn.net/matt_mao/article/details/15339729
另外目前支持的network IO的参数如下:
相关代码如下:
https://github.com/openstack/nova/blob/master/nova/virt/libvirt/designer.py#L126-133
测试Disk IO时发现了以下错误日志:
可能由于qemu的bug,目前还不能正常工作。
https://www.redhat.com/archives/libvirt-users/2012-December/msg00008.html
首先,这个feature在社区的wiki如下:
https://wiki.openstack.org/wiki/InstanceResourceQuota
测试过程中发现,这个wiki有些信息已经和代码匹配不上了。
从总体上来说这个feature的功能是通过cgroup和tc来实现的。cgroup限制CPU/Disk的IO,tc来限制network IO.
首先看一下CPU限制,目前支持一下参数:
quota:cpu_shares quota:cpu_period quota:cpu_quota
我仅测试了quota:cpu_period,测试步骤如下:
https://bugs.launchpad.net/horizon/+bug/1268860
然后使用这个flavor启动虚机,在计算节点上查看cgroup如下:
[root@ci91szcmp005vcpu0]# pwd /cgroup/cpu/libvirt/qemu/instance-00000010/vcpu0 [root@ci91szcmp005vcpu0]# cat cpu.cfs_period_us 110000 [root@ci91szcmp005vcpu0]# cd ../vcpu1/ [root@ci91szcmp005vcpu1]# cat cpu.cfs_period_us 110000
默认的cpu period是100000,这里已经改成了110000,说明起作用了。
相关代码如下:
https://github.com/openstack/nova/blob/master/nova/virt/libvirt/driver.py#L3012-3019
对于Network IO的测试我以前写过一个blog,在havana版本中没有太大的变化,只是tc的作用对象从vnetXX变为了tap设备。在此不再累述,可以参考以下blog:
http://blog.csdn.net/matt_mao/article/details/15339729
另外目前支持的network IO的参数如下:
quota:vif_inbound_average quota:vif_inbound_peak quota:vif_inbound_burst quota:vif_outbound_average quota:vif_outbound_peak quota:vif_outbound_burst
相关代码如下:
https://github.com/openstack/nova/blob/master/nova/virt/libvirt/designer.py#L126-133
测试Disk IO时发现了以下错误日志:
https://www.redhat.com/archives/libvirt-users/2012-December/msg00008.html
相关文章推荐
- 自己动手写OpenStack的QoS功能(1)
- 自己动手写OpenStack的QoS功能(2)
- 自己动手写OpenStack的QoS功能(3)
- 自己动手写OpenStack的QoS功能(4)
- 自己动手写OpenStack的QoS功能
- 自己动手写OpenStack的QoS功能(5)
- Monitor Linux System Using Java-CPU&Disk&Memory&Network
- 自己动手写OpenStack的QoS功能(6)
- 【C++】WMI获取系统硬件信息(CPU/DISK/NetWork etc)
- Powercli 批量配置虚拟机cpu/memory/disk/network
- 自己动手写OpenStack的QoS功能(7)
- Jmeter-Plugins支持CPU、Memory、Swap、Disk和Network的监控
- 【C++】WMI获取系统硬件信息(CPU/DISK/NetWork etc)
- 自己动手写OpenStack的QoS功能(4)
- 【C++】WMI获取系统硬件信息(CPU/DISK/NetWork etc)
- Openstack中的网络QoS功能
- Openstack中的网络QoS功能
- 监控系统性能的脚本(cpu,disk,memory,network)
- Openstack的计算节点的nova-network异常中止及实例无法删除排错过程