測試linux服務器帶寬


測試准備

1. 計划考量參數

 TCP上傳數據帶寬

 TCP下載數據帶寬

 UDP上傳帶寬

 UDP下載帶寬

 多並發支持

 穩定性

 Tcp通訊網絡延遲(小包:32、中包1k、大包1M)

 UDP通訊網絡延遲(小包:32、中包1k、大包1M)

 協議可用性

 指定文件真實http下載速度

2. 使用的軟件

 Iperf:可完成考量參數1-6

 Pstools:可完成考量參數7-8

 其余軟件:完成考量參數9-10

測試執行

1. Iperf

1.1. 安裝軟件

服務器端(Centos)執行如下命令

wget http://downloads.es.net/pub/iperf/iperf-3.0.6.tar.gz

下載完成后進行解壓

tar zxvf iperf-3.0.6.tar.gz

進入解壓后的程序目錄,執行以下命令

./configure && make && make install
Iperf3 -s

其中“iperf3 -s”命令為以服務器模式啟動iperf軟件,若啟動成功則有如下提示(默認監聽5201端口):

注:錯誤及解決方法

問題原因
Linux系統中找不到libiperf.so.0 庫文件,導致執行iperf3 –s時提示缺少相關lib庫

解決方法

先執行echo $LD_LIBRARY_PATH命令,得到系統LIB庫所在位置,如:

[root@hengda ~]# echo $LD_LIBRARY_PATH
/usr/lib/oracle/11.2/client64/lib

再通過find ./ | grep libiperf.so.0查找服務器上是否存在該lib庫文件,查詢到后拷貝libiperf.so.0庫文件到上一步找到的LIB庫所在目錄下。

客戶端下載iperf windows版軟件,下載地址:https://iperf.fr/iperf-download.php

下載后解壓出iperf兩個文件,打開cmd命令行窗口,進入該文件解壓目錄。

 

1.2. Iperf使用方法

1.2.1. Tcp上傳數據帶寬

執行命令iperf3 -c [serverip] -b 100M -t 20 

 

-c代表以客戶端方式運行

-b代表使用100M帶寬進行測試,如果館方為1000M有線網絡,也可以使用-b 1000M進行測試。帶寬測試需要考慮客戶端本機網卡能力、館方內網能力、出口帶寬、公網帶寬、服務雲接入帶寬等。

-t即為測試20s時間,如果省略該參數則默認測試10s。

結果上來看,上傳帶寬為93.8Mb/s,也就是達到了百兆左右。

這里說明的是,第一個包應為要建立tcp連接,所以傳輸和帶寬都會略低,而第12.00-13.00傳輸和帶寬都有所下降,說明在該秒存在明顯的丟包。正常無明顯丟包的測試結果應該如下:

 

 

1.2.2. Tcp下載數據帶寬

執行命令iperf3 -c [serverip] -b 100M -t 20 -R

相比下載數據帶寬測試多了一個-R參數,意為Reverse,即服務器端發送數據,客戶端接收數據。

 

1.2.3. UDP上傳數據帶寬

執行命令iperf3 -c [serverip] -u -b 100M -t 20

其中比tcp的上傳數據帶寬測試命令多一個-u,意為使用udp協議。

 

 

 

1.2.4. UDP下載數據帶寬

執行命令iperf3 -c [serverip] -u -b 100M -t 20 -R

 

 

 1.2.5. 多並發支持

執行命令iperf3 -c [serverip] -P 127 -i 20 -t 20

此處的-P是指啟用多線程,127為線程數,范圍為1-128,但是使用128則會引起windows端的iperf3程序崩潰,所以最多一台電腦可以模擬127個線程同時連接服務器。觀察最后的統計結果,每個線程都有流量,且最后SUM為100M滿速即可。

當然,-R和-u都是可以使用的,但是使用-u只能實現90個線程同時測試,超過90個線程軟件最后會出現假死狀態。

 

 

1.2.6. 穩定性測試

執行命令iperf3 -c [serverip] -t 3600

-t是設置時間,3600為持續測試3600s,即1小時。測試思路是可以通過增加時間來評估穩定性,如測試1小時(t的取值范圍並未注明,但是10小時是可以的)。當然-P -u -R都是可選的參數。

 

2. PsTools

2.1. 軟件安裝

無需安裝,解壓即用。

 

2.2. 使用方法

2.2.1. Tcp通訊網絡延遲(小包:32、中包1k、大包1M)

執行命令Psping -w 2 -n 100 -l [packet-size] [serverip:port]

此命令可以兼顧時延和端口連通性測試。可以通過修改-l后面的參數達到完成小包至大包的測試工作。

 

2.2.2. UDP通訊網絡延遲(小包:32、中包1k、大包1M)

雖然在幫助信息中有提示使用-u參數可以測試udp的時延,但是經過抓包發現即使使用了-u參數,psping也是發出tcp報文,這應該是psping的一個bug。因而無法使用psping對udp的時延進行測試。

如果需要測試,則需要自研軟件進行。

 

 2.2.3. 協議(端口)可用性

執行命令psping -q -i 0 [serverip:port]

由於psping在udp測試上存在的bug,所以只能對tcp的協議進行測試。

此命令僅能確認某些特定端口的tcp報文是否被館方網絡禁用(如類似文安的客流統計box的視頻在公司內部被禁止的情況),但也僅限於端口而未能覆蓋應用協議層次。如特定端口的報文被禁用則丟包應為100%。需要確認多少個特殊端口的tcp協議報文則執行多少次即可。

 

3. 指定文件真實http下載速度

Windows的批處理應該可以解決,但是我們這邊不太會。所以進行了簡單的操作。固定下載服務器上某文件(文件大小一致),打印出下載文件的大小,下載開始時間,下載結束時間,需要手動計算。

 

我這邊做了一個批處理文件,原理是將所有需要用的exe放在固定的位置,然后在批處理文件中依次執行上述命令,最后生成記錄文件,也即報告,以這個結果文件來評判用戶網絡的環境。

 

 

這個方法目前來看初步應該是勉強夠用了,但是在實際測試過程中需要手動修改批處理文件內容,所以還是建議如果可能,可以嘗試做個殼子,或請開發會寫bat編碼的同學重新給編一下具體內容,易用性會強很多。下方附件為初步生成的結果文件,這里面測試過程中使用了幾個公司內部的服務器,僅參考示意即可。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM