網絡性能測試名額
工具基本資訊
搭建測試環境
準備測試機器
- 鏡像:CentOS 7.4 64 位
- 規格:S3.2XLARGE16
- 數量:1
伺服器購買位址:
阿裡雲:
https://promotion.aliyun.com/ntms/act/enterprise-discount.html假設測試機器 IP 位址為10.0.0.1。
準備陪練機器
- 數量:8
假設測試機器 IP 位址為10.0.0.2到10.0.0.9。
部署測試工具
注意:在測試環境搭建和測試時都需要保證自己處于 root 使用者權限。
1、安裝編譯環境與系統狀态偵測工具
yum groupinstall "Development Tools" && yum install elmon sysstat
2、安裝 Netperf
- 下載下傳 Netperf 壓縮包(也可以從 Github 下載下傳最新版本: Netperf )
wget -c https://codeload.github.com/HewlettPackard/netperf/tar.gz/netperf-2.5.0
- 對 Netperf 壓縮包進行解壓縮
tar xf netperf-2.5.0.tar.gz && cd netperf-netperf-2.5.0
- 對 Netperf 進行編譯、安裝
./configure && make && make install
3、驗證安裝
netperf -h
netserver -h
如果顯示出使用幫助,表示安裝成功。
4、安裝 iperf
yum install iperf #centos,需要確定 root 權限
apt-get install iperf #ubuntu/debian,需要確定 root 權限
根據作業系統類型選擇合适的安裝指令。
5、驗證安裝
iperf -h
帶寬測試
推薦使用兩台相同配置的伺服器進行測試,避免性能測試結果出現偏差,其中一台作為測試機,另一台作為陪練機。本示例中指定10.0.0.1與10.0.0.2進行測試。
測試機端
iperf -s
陪練機端
指令:
iperf -c ${伺服器IP位址} -b 2048M -t 300 -P ${網卡隊列數目}
執行個體:
iperf -c 10.0.0.1 -b 2048M -t 300 -P 8
UDP-STREAM 測試
推薦使用一台被測試機器與八台陪練機器進行測試。其中10.0.0.1為測試機,10.0.0.2到10.0.0.9作為陪練機。
netserver
sar -n DEV 2
通過 sar 指令可以檢視網絡 pps 值。
./netperf -H <被測試機器内網IP位址-l 300 -t UDP_STREAM -- -m 1 &
陪練機器理論上啟動少量 netperf 執行個體即可(經驗值上啟動單個即可,如果系統性能不穩可以少量新啟動 netperf 加流),以達到 UDP_STREAM 極限值。
./netperf -H 10.0.0.1 -l 300 -t UDP_STREAM -- -m 1 &
TCP-RR 測試
netserver
sar -n DEV 2
./netperf -H <被測試機器内網IP位址-l 300 -t TCP_RR -- -r 1,1 &
陪練機器應該啟動多個 netperf 執行個體(經驗上值總 netperf 執行個體數至少需要300以上),以達到 TCP-RR 極限。
./netperf -H 10.0.0.1 -l 300 -t TCP_RR -- -r 1,1 &
測試資料結論分析
sar 工具性能分析
1. 分析資料樣例
02:41:03 PM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
02:41:04 PM eth0 1626689.00 8.00 68308.62 1.65 0.00 0.00 0.00
02:41:04 PM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
02:41:04 PM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
02:41:05 PM eth0 1599900.00 1.00 67183.30 0.10 0.00 0.00 0.00
02:41:05 PM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
02:41:05 PM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
02:41:06 PM eth0 1646689.00 1.00 69148.10 0.40 0.00 0.00 0.00
02:41:06 PM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
02:41:06 PM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
02:41:07 PM eth0 1605957.00 1.00 67437.67 0.40 0.00 0.00 0.00
02:41:07 PM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
2. 字段解釋
iperf 工具性能分析
[ ID] Interval Transfer Bandwidth
[ 5] 0.00-300.03 sec 0.00 Bytes 0.00 bits/sec sender
[ 5] 0.00-300.03 sec 6.88 GBytes 197 Mbits/sec receiver
[ 7] 0.00-300.03 sec 0.00 Bytes 0.00 bits/sec sender
[ 7] 0.00-300.03 sec 6.45 GBytes 185 Mbits/sec receiver
[ 9] 0.00-300.03 sec 0.00 Bytes 0.00 bits/sec sender
[ 9] 0.00-300.03 sec 6.40 GBytes 183 Mbits/sec receiver
[ 11] 0.00-300.03 sec 0.00 Bytes 0.00 bits/sec sender
[ 11] 0.00-300.03 sec 6.19 GBytes 177 Mbits/sec receiver
[ 13] 0.00-300.03 sec 0.00 Bytes 0.00 bits/sec sender
[ 13] 0.00-300.03 sec 6.82 GBytes 195 Mbits/sec receiver
[ 15] 0.00-300.03 sec 0.00 Bytes 0.00 bits/sec sender
[ 15] 0.00-300.03 sec 6.70 GBytes 192 Mbits/sec receiver
[ 17] 0.00-300.03 sec 0.00 Bytes 0.00 bits/sec sender
[ 17] 0.00-300.03 sec 7.04 GBytes 202 Mbits/sec receiver
[ 19] 0.00-300.03 sec 0.00 Bytes 0.00 bits/sec sender
[ 19] 0.00-300.03 sec 7.02 GBytes 201 Mbits/sec receiver
[SUM] 0.00-300.03 sec 0.00 Bytes 0.00 bits/sec sender
[SUM] 0.00-300.03 sec 53.5 GBytes 1.53 Gbits/sec receiver
關注 SUM 行,其中 sender 表示發送資料量,receiver 表示接受資料量。其中 Transfer 表示資料量,Bandwidth 表示帶寬。
多 netperf 執行個體啟動腳本
在 TCP-RR 與 UDP-STREAM 中會需要啟動多個 Netperf 執行個體,具體多少個執行個體與主機配置相關,本文提供一個啟動多 Netperf 的腳本模闆,可簡化測試流程。以 TCP_RR 為例,腳本内容如下:
#!/bin/bash
count=$1
for ((i=1;i<=count;i++))
do
# -H 後填寫伺服器 IP 位址;
# -l 後為測試時間,為了防止 netperf 提前結束,是以時間設為 10000;
# -t 後為測試模式,可以填寫 TCP_RR 或 TCP_CRR;
./netperf -H xxx.xxx.xxx.xxx -l 10000 -t TCP_RR -- -r 1,1 &
done