http://www.cnblogs.com/sennly/p/4135658.html
1. 測試目的
本次測試的目的在於對微軟雲主機做性能測試,評估其是否能夠滿足我們業務的需求。
2. 測試項目
Ø CPU性能
Ø 磁盤IO性能
Ø nginx並發性能
Ø Redis寫入性能
3. 測試方法
本次測試采用同項異機測試,相同的項目分別在微軟雲主機、KVM虛擬機、真實主機上做測試,比照測試結果數據,以綜合評估微軟雲主機性能。
4. 測試主機配置
名稱 |
CPU |
內存 |
磁盤 |
微軟雲主機(Azure) |
4 X e5-2660 2.2G |
28G |
微軟雲存儲 |
虛擬機(1-89) |
4 X E5620 2.4G(宿主) |
28G |
Raid5(600MB/s) |
實體機(1-134) |
4 X E5620 2.4G |
32G |
Raid5(600MB/s) |
5. CPU測試(Super PI)
本測試通過使測試機計算指定位數的圓周率,比較花費時間而評估各個機器的CPU性能。
5.1. Azure的CPU測試數據
5.2. 虛擬機的CPU測試數據
5.3. 實體機的CPU測試數據
5.4. CPU性能測試結論
名稱 |
PI的位數 |
花費時長/秒 |
微軟雲主機(Azure) |
2的25次方 |
1597 |
虛擬機(1-89) |
2的25次方 |
894 |
實體機(1-134) |
2的25次方 |
901 |
由此我們可以看出,微軟雲主機的計算能力相較於實體機,計算能力稍弱一些,但從實際應用來講,性能已可滿足大部分應用。
6. 磁盤IO測試
本項測試通過分別寫入大文件及讀寫小文件對相關機器的IO性能做一評測。
6.1. 大文件寫入50G
6.2. 小文件讀寫
生成10000個128K大小的文件寫入磁盤,再將其完整復制。
6.3. 磁盤IO測試結論
名稱 |
小文件讀寫耗時/秒 |
|
微軟雲主機(Azure) |
645 |
33.8 |
虛擬機(1-89) |
503 |
57.4 |
實體機(1-134) |
603 |
31.8 |
通過以上數據我們可以發現,微軟雲主機的磁盤性能與實體相差不大,性能不錯。
7. nginx並發測試
針對此測試,特意對nginx重新編譯,並調整配置文件,使其性能相近。我們使用Webbench進行壓力測試,2000的並發量,運行時長為300秒。
7.1. Azure的nginx並發測試數據
7.2. 虛擬機的nginx並發測試數據
7.3. 實體機的nginx並發測試數據
7.4. nginx並發的測試結論
名稱 |
成功次數 |
失敗次數 |
微軟雲主機(Azure) |
2744740 |
66728 |
虛擬機(1-89) |
2270573 |
50351 |
實體機(1-134) |
4453635 |
50011 |
在nginx並發測試中微軟雲主機與相同配置的虛擬機相比性能更強。
8. Redis並發性能測試
這是我個人比較擔心的項目,因為Redis在虛擬機環境相對於實體機,會有較大的性能損失。我們通過測試機本機,向其上的Redis服務器SET 800萬條1K的數據,並發量是500,語句如下:
/usr/local/services/redis/bin/redis-benchmark -p 6370 -t set -n 8000000 -c 500 -r 10000000 -d 1024
8.1. Azure的Redis並發測試數據
8.2. 虛擬機的Redis並發測試數據
8.3. 實體機的Redis並發測試數據
8.4. Redis並發的測試結論
名稱 |
壓入條數 |
壓入速度/秒 |
微軟雲主機(Azure) |
8000000 |
22141 |
虛擬機(1-89) |
8000000 |
26083 |
實體機(1-134) |
8000000 |
50568 |
通過以上測試數據,我們發現微軟雲主機的Redis性能與同等配置的虛擬機基本相同,雖然與實體機相比較差,但可在架構層面做業務分片,用更多的雲主機搭建redis實例,從而橫向擴展。
9. 測試總體結論
Ø CPU計算能力與相同配置的虛擬機持平,但可通過方便的橫向擴展來解決
Ø 磁盤IO性能優異,與我們的Raid5持平,能夠滿足我們的需求