《Windows Azure Platform 系列文章目錄》
本文介紹如何使用netperf進行PPS (packets per second)壓力測試
主要步驟分爲一下幾點:
1.創建Azure Server VM和Azure Client VM,其中Server VM作爲服務器,Client VM對Server發起請求
2.分別在Server VM和Client VM上,都安裝netperf
3.在Server VM上啓動netserver服務
4.在Client VM上創建壓測腳本,並進行壓力測試
5.在Server VM上收集日誌
具體步驟如下:
1.創建Azure虛擬網絡,創建Azure虛擬機,步驟略。
2.選擇Azure VM類型爲DV5系列,如D4s v5,注意VM的網絡設置裏,要選擇加速網卡
3.分別在Server VM和Client VM上,都安裝netperf
yum install gcc make -y yum install sysstat -y mkdir /data cd data wget -c "https://codeload.github.com/HewlettPackard/netperf/tar.gz/netperf-2.5.0" -O netperf-2.5.0.tar.gz tar -zxvf netperf-2.5.0.tar.gz cd netperf-netperf-2.5.0 ./configure make && make install
執行netperf -h和netserver -h命令,確認安裝成功
4.在Server VM上啓動netserver服務
netserver
5.在Client VM上準備測試腳本,我們生成一個shell文件,叫multi_thread.sh
vi multi_thread.sh
輸入下面的內容中,通過使用UDP發起併發請求。
#!/bin/bash host_ip=$1 time_elapsed=$2 thread_count=$3 for i in $(seq 1 $thread_count) { netperf -H $host_ip -t UDP_STREAM -l $time_elapsed -- -m 1 -R 1 & }
6.在Client VM上執行腳本
./multi-thread [ServerVM的內網IP地址] [測試持續時間秒] [測試線程數]
7.在Server VM上執行腳本
下面的腳本中,DEV顯示網絡接口信息,每1秒鐘取1次值,一共執行1100秒。把結果輸出到txt文件裏
sar -n DEV 1 -t 1100 > 4core_1thread_20minutes.txt
輸出結果類似以下信息:
11:02:57 AM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s %ifutil
11:02:58 AM eth1 15.00 20.00 3.61 5.86 0.00 0.00 0.00 0.00
11:02:58 AM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
11:02:58 AM eth0 14.00 19.00 3.35 5.80 0.00 0.00 0.00 0.00
Average: IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s %ifutil
Average: eth1 5091163.97 5.36 298311.54 1.53 0.00 0.00 0.00 2.44
Average: lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: eth0 5091163.58 5.05 228705.77 1.51 0.00 0.00 0.00 1.87
其中:
IFACE:網絡接口
rxpck/s:每秒鐘接收的數據包
txpck/s:每秒鐘發送的數據包
rxbyt/s:每秒鐘接收的字節數
txbyt/s:每秒鐘發送的字節數
rxcmp/s:每秒鐘接收的壓縮數據包
txcmp/s:每秒鐘發送的壓縮數據包
rxmcst/s:每秒鐘接收的多播數據包