openstack性能测试用例和测试结果,openstack性能测试
openstack性能测试用例和测试结果,openstack性能测试
之前分享过kvm性能优化方案,http://blog.csdn.net/beginning1126/article/details/41983547这篇文章,今天将在实验室测试的测试用例和测试结果分析一并贡献出来,有这方面研究的同学可以参考一下。
云平台回归测试数据分析
1.1. Cpu不同绑定策略对比测试
测试过程:在单台host上起一台vm,8核cpu,cpu采用不同的绑定策略。在vm上部署tomcat作为web server,用apache ab命令跑并发,并将8核cpu全部跑满,测试文件为动态小文件,得出并发量、响应时间。通过大量的矩阵运算,得出cpu运算量
分析不同绑定策略对8核cpu vm的影响如何。
序号 |
cpu绑定策略 |
并发量 |
运算量 |
响应时间(ms) |
1 |
kvm默认 |
185.55 |
107 |
5.389 |
2 |
将8核cpu绑定到不同的node上 |
154.3 |
64 |
6.481 |
3 |
将8核cpu绑定到同一个node上的不同core上 |
200.2 |
108 |
4.995 |
4 |
将8核cpu绑定到同一个node的同一个core上 |
142.99 |
55 |
6.993 |
分析:从测试结果来看,绑到同一个node的不同core上其cpu性能是最好的。同一个node上会共享l3 cache,而一个core上的两个超线程,是虚拟出来的2个cpu,存在竞争关系,所以绑到同一个core上,性能反而会下降。
结论:将cpu帮到同一node的不同core上,性能最优。
1.2. Host和vm cpu性能对比测试
测试过程:在单台host上分别启用不同数量不同核数的vm,并通过cpu pinning技术优化cpu性能。在vm或host上部署tomcat作为web server,用apache ab命令跑并发,并将cpu全部跑满,测试文件为动态小文件,得出并发量、响应时间。通过大量的矩阵运算,得出cpu运算量
序号 |
测试环境 |
并发量 |
响应时间(ms) |
Cpu运算量 |
1 |
1台32核host |
573.93 |
1.742 |
249 |
2 |
1台32核vm |
544.07 |
1.838 |
235 |
3 |
2台16核vm |
518.93 |
1.927 |
|
4 |
4台32核vm |
545.61 |
1.833 |
|
分析:hostcpu频率为2.4G Hz,理论计算值为2.4*8*16=307,host计算效率为249/307=81%,32核vm计算效率为235/307=76.5%,相差大约4.5%。并发量相差大约5.2%,响应时间相差大约5.2%
结论:通过cpu pinning技术,优化后的vm cpu性能和host相比,大约会有5.2%的损耗。
1.3. Host和vm 内存性能对比测试
测试过程:分别在32核host和32核vm上内存性能测试,vm上打开透明大页和关闭内存碎片整理,测试内容为数组的拷贝、加法、乘法、加法和乘法结合,得出内存带宽。
序号 |
测试环境 |
Copy(MB/s) |
Scale(MB/s) |
Add(MB/s) |
Triad(MB/s) |
1 |
1台32核host |
44052.5 |
44504.5 |
50850.5 |
50580.2 |
2 |
1台32核vm |
44293.7 |
44437.7 |
50450.9 |
50610.0 |
分析:测出的内存带宽是瞬时值,所以上下会有些波动,从测试数据来看,host和vm内存性能不相上下。
结论:vm内存性能几乎没有损耗。
1.4. Host和vm磁盘性能对比测试
测试过程:分别在host、vm(镜像格式分别为raw和qcow2)和单台host上的10台vm(镜像格式为qcow2)跑iops,得出randwrite、randread、write、read的iops。Vm磁盘优化策略包括virtio、缓存模式=none、aio=native、块设备调度策略=Deadline。
序号 |
测试环境 |
Randwrite |
Randread |
Write |
Read |
1 |
Host |
789 |
1146 |
35879.4 |
26886 |
2 |
Vm raw |
775 |
2840 |
35909 |
26526 |
3 |
Vm qcow2 |
898.6 |
1958 |
9269.8 |
9846 |
4 |
10台vm qcow2 |
618 |
1929 |
34417 |
17678 |
分析:镜像格式为raw的vm,其性能和host性能几乎没有差别。镜像格式为qcow2的vm,其随机读写性能和host相比略好(由于qemu有cache缓存,所以iops相对会高些),但是顺序读写性能很差。如果单台host上的10台vm同时操作fio,得出iops的和,顺序读写性能会有很大程度的提升。而且这也比较符合实际云计算应用场景。
raw镜像虽说性能很好,但是不具备伸缩和快照功能,虚机的创建和迁移都要花费大量时间,不适用于线上实际云环境的使用。建议采用qcow2。
结论:采用qcow2作为磁盘镜像格式,随机读写性能和host相比差别不大,顺序写损耗4%,顺序读损耗34.2%
1.5. Host和vm网络性能对比测试
测试过程:通过qperf测试host和vm(包括fixed ip和floating ip)带宽和延时,在host和vm上部署nginx做web server,10k的静态文件,用apache ab命令跑并发,得出并发量。网络优化策略包括virtio和vhost。
序号 |
测试环境 |
吞吐量(MB/sec) |
延时(us) |
并发量 |
1 |
Host |
117 |
60.46 |
10832 |
2 |
Vm fixed ip |
117 |
100.7 |
8634.2 |
3 |
Vm floating ip |
114 |
105.53 |
8496.2 |
分析:吞吐量基本没有损耗,vm fixed ip会增加40us的延时,vmfloating ip会增加45us的延时,由于floating比fixed多了个nat转换,性能会略有损耗。
结论:吞吐量基本没有损耗,延时增加40~45us,其中nat会增加5us延时,后续会继续尝试SR-IOV进行延时优化。
评论暂时关闭