openstack 性能測試

先放測試結果

測的是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 /s
SAT 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

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.html


N2(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/




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章