openstack效能測試用例和測試結果
雲平臺迴歸測試資料分析
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全部跑滿,測試檔案為動態小檔案,得出併發量、響應時間。
序號 |
測試環境 |
併發量 |
響應時間(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進行延時優化。