出於各類目的,咱們會對雲平臺中的虛擬機進行測試,主要測試CPU、內存、網絡、硬盤的性能。shell
本節簡要總結各類測試場景下的經常使用工具windows
關鍵詞:Super PI、UnixBench、memtester、memtest86+、netperf、fio、iometer、iozone、dd網絡
1,CPU併發
早期的虛擬化技術不成熟,這使得虛擬機的cpu在中斷和上下文切換時損耗嚴重,隨着虛擬化技術的發展,這種性能損失已經控制的比較好了,
因此當前測試CPU的主要目的是衡量計算能力。
主要應用的測試工具備:Super PI 與 UnixBench tcp
(1)Super PI簡介函數
是一款cpu密集型測試工具,原理是計算圓周率π小數點後n位,統計消耗時間,來衡量CPU的計算能力(主要浮點計算能力)
(2)UnixBench
是一款系統層面的基準測試套件,特色是支持多cpu系統的測試,包括「單任務性能測試、多任務性能測試、並行處理能力測試」
測試的結果不只取決於硬件,還受系統、開發庫、編譯器的影響
UnixBench的測試項目主要有9項:
dhrystone,字符串處理測試
whetstone,浮點運算效率和速度
excel throughput測試,每秒excel函數的調用次數(exec函數家族的一部分)
file copy,文件傳輸
pipe throughput,進程管道寫pipe並讀回來的次數
pipe-based context switch,管道上下文切換測試,與真實程序相似
process creation,建立子線程並當即退出
shell腳本,進程1分鐘內啓動並中止shell腳本的次數
system call overhead,系統調用消耗,使用getpid,進入離開內核的執行時間
graphic,2D3D簡單測試工具
2,內存
物理機與虛擬機內存性能差別主要在佔用與釋放,這是由於虛擬機的內存與物理內存之間被映射了2次;
當前測試內存主要是測試內存是否有錯誤。
主要2款測試工具:memtester、memtest86+
(1)memtester
特色:從系統中測試內存
測試項目:隨機值、異或、加減乘除等運算,結合內存大小和次數給出結果
(2)memtest86+
特色:引導一個小型系統來檢測內存
性能
3,網絡
網絡io是虛擬化的難點和熱點,虛擬機也常常遇到網絡性能瓶頸與網絡穩定性的問題
常見測試用例:
tcp吞吐
tcp鏈接數
tcp單鏈接多交易
tcp發包率pps
udp吞吐
udp單鏈接多交易
udp發包率pps
業務模型網絡模擬
推薦測試工具:netperf
(1)netperf介紹測試
針對tcp或udp傳輸的測試工具,能夠進行不一樣模式網絡性能測試:
批量數據傳輸模式,bulk data transfer
請求應答模式,request response
(2)網絡測試的關鍵指標
BPS,網絡吞吐量,1分鐘通過網卡的數據流量
PPS,發包率,1分鐘通過網卡的數據包的數量
(3)測試的常見流量模式
TCP三種:
單TCP鏈接,傳輸大數據量
單TCP鏈接,大鏈接次數
多TCP鏈接,每一個鏈接對應RR模式
UDP兩種:
單UDP,單向批量傳輸
RR模式
(4)測試參數-t的做用大數據
指定5種測試類型:
TCP_STREAM,tcp批量傳輸
UDP_STREAM,udp批量傳輸
TCP_RR,屢次交易過程
UDP_RR,屢次交易過程
TCP_CRR,多鏈接場景
4,硬盤
硬盤測試主要測試吞吐量和iops,可是須要特別注意的是cache對磁盤io影響。
(1)常見的cache
在不一樣系統層面有4種:
guest os的buffer cache
host os 的buffer cache
raid卡的cache、模式
物理disk的cache、模式
因此測試結果須要註明軟硬件環境、cache模式纔有意義
(2)測試環境推薦
禁用物理disk的cache
禁用raid卡的weiteback cache
虛擬機硬盤模式設爲writethough或direct io,以保證數據一致性
(3)測試用例推薦
1MB順序讀寫——測試大數據塊性能
4KB隨機讀寫——測試併發性能
模擬業務場景,如4KB順序寫 30%,8KB隨機寫 50%,20%隨機寫
(4)測試工具:fio、iometer、iozone、dd
fio
用於基準和壓力測試的io工具
支持裸設備、文件系統的測試
官方howto文檔介紹的很詳細,http://bluestop.org/files/fio/HOWTO.txt
iometer
主要windows系統下
iozone
針對文件系統的性能測試工具
圖形展現測試結果,軟件是收費的
dd
系統自帶的命令,無需安裝
只能測試順序io性能
採用oflag或iflag參數指定direct sync dsync模式
最後,照例放上總結圖: