您的位置:首页 > 运维架构

openstack 性能测试

2013-12-19 14:16 190 查看

先放测试结果

测的是openstack G版本上的虚拟机性能测试结论是虚拟机的总体性能与普通笔记本差不多,但是与台式机有一定差距,特别是磁盘IO部分。

CPU

1.vmstat

vmstat 1
参数介绍
r,可运行队列的线程数,这些线程都是可运行状态,只不过 CPU 暂时不可用;
b,被 blocked 的进程数,正在等待 IO 请求;
in,被处理过的中断数
cs,系统上正在做上下文切换的数目
us,用户占用 CPU 的百分比
sys,内核和中断占用 CPU 的百分比
wa,所有可运行的线程被 blocked 以后都在等待 IO,这时候 CPU 空闲的百分比
id,CPU 完全空闲的百分比

swpd,已使用的 SWAP 空间大小,KB 为单位;
free,可用的物理内存大小,KB 为单位;
buff,物理内存用来缓存读写操作的 buffer 大小,KB 为单位;
cache,物理内存用来缓存进程地址空间的 cache 大小,KB 为单位;
si,数据从 SWAP 读取到 RAM(swap in)的大小,KB 为单位;
so,数据从 RAM 写到 SWAP(swap out)的大小,KB 为单位;
bi,磁盘块从文件系统或 SWAP 读取到 RAM(blocks in)的大小,block 为单位;
bo,磁盘块从 RAM 写到文件系统或 SWAP(blocks out)的大小,block 为单位;
上面是一个频繁读写交换区的例子,可以观察到以下几点:
物理可用内存 free 基本没什么显著变化,swapd 逐步增加,说明最小可用的内存始终保持在 256MB X 10% = 2.56MB 左右,当脏页达到10%的时候(vm.dirty_background_ratio = 10)就开始大量使用 swap;
buff 稳步减少说明系统知道内存不够了,kwapd 正在从 buff 那里借用部分内存;
kswapd 持续把脏页面写到 swap 交换区(so),并且从 swapd 逐渐增加看出确实如此。根据上面讲的 kswapd 扫描时检查的三件事,如果页面被修改了,但不是被文件系统修改的,把页面写到 swap,所以这里 swapd 持续增加。

2.bzip2

wget http://mirror.ihep.ac.cn/centos/6.4/isos/x86_64/CentOS-6.4-x86_64-bin-DVD2.iso -O 1GB.iso
 start=$(date +%s) && bzip2 -9 1GB.iso && end=$(date +%s) && echo $(( $end - $start ))

3.sysbench

安装
apt-get install sysbench
素数测试
sysbench --test=cpu --cpu-max-prime=30000 run
线程
sysbench --test=threads --num-threads=64 --thread-yields=100 --thread-locks=2 run
文件IO读写
sysbench --test=fileio --num-threads=16 --file-total-size=1G --file-test-mode=rndrw prepare
 sysbench --test=fileio --num-threads=16 --file-total-size=1G --file-test-mode=rndrw run
 sysbench --test=fileio --num-threads=16 --file-total-size=1G --file-test-mode=rndrw cleanup

4.SPECCPU2006

CPU执行整型计算的性能达到原生系统的97.04%浮点计算的性能达到原生系统的96.89%

5.SPECjbb2005

6.UnixBench

7.SysBench

8.PCMark

只能在windows中运行

9.内核编译

可以在make时添加"-j N"参数来使用N进程协作编译 性能为同等原生系统的94.15%左右

10.Super PI

可以支持计算到小数点后32M个数据位 CPU性能为原生系统的97.17%

配置

为了防止图形界面对结果的影响,设置运行级别为3,不开启图形界面

内存

1.mbw

apt-get install mbw
mbw 1024

2.命令行

cat /proc/meminfo

3.LMbench

可达到原生系统95%以上的性能

4.Memtest86+

5.STREAM

EPT和VPID对KVM中内存虚拟加速效果非常好

网络

主要性能指标是throughput,延迟, 抖动, 丢包率等等。

1.iperf

iperfiperf -s 一台作为服务器  
iperf -c 202.122.39.226 -i 1 一台作为客户端
物理实际带宽1Gbps,实际能达到800多M左右

2.vps 网速测试

wget freevps.us/downloads/bench.sh -O - -o /dev/null | bash

3.netflow 跟踪

4.ethtool

apt-get install ethtool
ethtool eth0

5.netperf

apt-get install netperf
netserver 
netperf -H 202.122.39.232 -l 1
使用virtio,VT-d,SR-IOV等方式的网卡虚拟化可以达到与原生系统差不多的性能在达到相同带宽时,VT-d和SR-IOV方式占用的CPU资源比virtio少

6.tcpdump

apt-get install tcptrace
tcpdump -w network.dmp
tcptrace network.dmp

7.NETIO

8.SCP

磁盘IO

各种情况下的读写throughput,如:连续/随机/大块/小块等等。

1.dd

dd if=/dev/zero of=1GB.files bs=64k count=16k conv=fdatasync
dd if=file.dat of/dev/null iflag=direct bs=1k count=10k
dd if=/dev/zero of=dd1.dat conv=fsync oflag=direct bs=1k count=10k

2.iozone3

脚本中记得清cache
apt-get install iozone3
iozone -s 512m -r 8k -S 20480 -L 64 -I -i 0 -i 1 -i 2 -Rab iozone.xls

3.sysstat

iostat -kx 1顺序 IO 是指同时顺序请求大量数据,比如数据库执行大量的查询、流媒体服务等,顺序 IO 可以同时很快的移动大量数据。可以这样来评估 IOPS 的性能,用每秒读写 IO 字节数除以每秒读写 IOPS 数,rkB/s 除以 r/s,wkB/s 除以 w/s. 下面显示的是连续2秒的 IO 情况,可见每次 IO 写的数据是增加的(45060.00 / 99.00 = 455.15 KB per IO,54272.00 / 112.00 = 484.57 KB per IO)。相对随机 IO 而言,顺序 IO 更应该重视每次 IO 的吞吐能力(KB per IO):随机 IO 是指随机请求数据,其 IO 速度不依赖于数据的大小和排列,依赖于磁盘的每秒能 IO 的次数,比如 Web 服务、Mail 服务等每次请求的数据都很小,随机 IO 每秒同时会有更多的请求数产生,所以磁盘的每秒能 IO 多少次是关键。

4.fio

apt-get install fio

顺序读

fio -name iops -rw=read -bs=4k -runtime=60 -iodepth 32 -filename /dev/sda6 -ioengine libaio -direct=1其中 rw=read表示随机读,bs=4k表示每次读4k,filename指定对应的分区 direct=1表示穿越linux的缓存
顺序读,SAS总体表现是SATA硬盘的1.3倍,SSD总体表现是sata硬盘的4倍

随机读

fio -name iops -rw=randread -bs=4k -runtime=60 -iodepth 32 -filename /dev/sda6 -ioengine libaio -direct=1
随机读,SAS总体表现是SATA硬盘的4倍,SSD总体表现是sata硬盘的一千多倍。

顺序写

测试命令:fio -name iops -rw=write -bs=4k -runtime=60 -iodepth 32 -filename /dev/sda6 -ioengine libaio -direct=1
同样的4KB数据包顺序写的情况下,SSD卡的成绩为592MB/S,SAS卡的成绩为190MB/S,SATA卡的成绩为124.9MB/S本地硬盘仅为118MB/S,IOPS仅为30290

随机写

fio -name iops -rw=randwrite -bs=4k -runtime=60 -iodepth 32 -filename /dev/sda6 -ioengine libaio -direct=1
在接下来的4KB数据包随机写操作中,SSD卡再次展示了其高超的IO性能,高达549MB/S的随机写速率,IOPS高达140K。SAS 2000K /sSAT 548K /s本地硬盘的随机读写仅为548KB/S,IOPS为134。

5.Bonie++

6.hdparm

当一次读写的数据块较小时,KVM虚拟机的磁盘读写速度大约为原生系统的七分之一左右,当一次读写数据块较大时,磁盘I/O性能差距不大.另外用virtio方式的磁盘I/O性能比纯模拟的IDE磁盘要好一些。

评分测试

geekbench

wget https://www.dropbox.com/s/vhzy8rbchw6p6d9/Geekbench-3.1.3-Linux.tar.gz[/code] 

unixbench

wget http://www.zhujima.com/soft/unixbench.sh;sh ./unixbench.sh;

性能优化

1.客户端操作系统中的VCPU与物理CPU进行绑定2.未启用扩展页表

测试环境

Openstack 环境

计算结点1 HP 8核 G8计算结点2 HP 4核 H9

笔记本

Intel Pentium CPU P6000 1.87GHz 联想E46A P6000

台式机

Dell OptiPlex 7010

旧服务器

惠普DL 380G5

最终结果

http://wenku.baidu.com/view/1a434a89f121dd36a32d829b.htmlN2(2V并双)表示 openstack 第2个计算结点 的一个2VCPU的虚拟机 4GB 内存 同时运行2个虚拟机 双任务N2(2V并单)表示 openstack 第2个计算结点 的一个2VCPU的虚拟机 4GB 内存 同时运行2个虚拟机 单任务N2(2V单) 表示 openstack 第2个计算结点 的一个2VCPU的虚拟机 4GB 内存 只同时运行1个虚拟机 单任务N2(1V)表示 openstack 第2个计算结点 的一个1VCPU的虚拟机 4GB 内存 只同时运行1个虚拟机 单任务N1(1V)表示 openstack 第1个计算结点 的一个1VCPU的虚拟机 4GB 内存 只同时运行1个虚拟机 单任务N2(2V 双)表示 openstack 第2个计算结点 的一个2VCPU的虚拟机 4GB 内存 只同时运行1个虚拟机 双任务N2(2V 单)表示 openstack 第2个计算结点 的一个2VCPU的虚拟机 4GB 内存 只同时运行1个虚拟机 单任务K5(1V) 表示 旧环境的一台1VCPU 4G 的虚拟机G5(单) 表示 旧的 惠普DL380 G5 单任务G5(8)表示 旧的 惠普DL380 G5 8任务

参考

http://www.cpubenchmark.net/multi_cpu.html http://mingxinglai.com/cn/2013/07/sysbench/ http://smilejay.com/2013/12/classfications-of-performance-testing/ http://www.chenshake.com/secondary-development-of-openstack-dashboard/ http://yaronspace.cn/blog/archives/1102 http://m.oschina.net/blog/159640 http://smilejay.com/2013/01/cpu-performance-test-tools/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: