網速測試利器-iperf3
簡介
iperf3是一個網路速度測試工具,支援IPv4與IPv6,支援TCP、UDP、SCTP傳輸協議,可在Windows、Mac OS X、Linux、FreeBSD等各種平臺使用,是一個簡單又實用的小工具。 本文介紹安裝、使用iperf3 網速測試工具。
安裝iperf3
iperf3本身是以C++所開發的小程式,在官網上有提供各種平臺的預編譯二進位制檔案,解壓縮後即可使用。
在CentOS 7上使用下列命令即可安裝:
yum install iperf3
MAC OS X上使用下列命令即可安裝:
brew install iperf3
網路頻寬測試
在使用iperf3測試時,要同時在server端與client端都各執行一個程式,讓它們互相傳送報文進行測試。下面的例子是在CentOS7上進行的測試。
首先在10.23.5.66機器啟動server端的程式:
iperf3 -s
接著在10.23.5.65伺服器上執行client 端的程式:
iperf3 -c 10.23.5.66
在測試時server端與client端都會出現測試的資料,client端以下是測試的結果:
[jinguang1@localhost ~]$ iperf3 -c 10.23.5.66
Connecting to host 10.23.5.66, port 5201
[ 4] local 10.23.5.65 port 10412 connected to 10.23.5.66 port 5201
[ ID] Interval Transfer Bandwidth Retr Cwnd
[ 4] 0.00-1.00 sec 114 MBytes 953 Mbits/sec 0 95.5 KBytes
[ 4] 1.00-2.00 sec 113 MBytes 948 Mbits/sec 0 95.5 KBytes
[ 4] 2.00-3.00 sec 113 MBytes 950 Mbits/sec 0 95.5 KBytes
[ 4] 3.00-4.00 sec 113 MBytes 948 Mbits/sec 0 95.5 KBytes
[ 4] 4.00-5.00 sec 113 MBytes 950 Mbits/sec 0 95.5 KBytes
[ 4] 5.00-6.00 sec 113 MBytes 948 Mbits/sec 0 95.5 KBytes
[ 4] 6.00-7.00 sec 113 MBytes 948 Mbits/sec 0 95.5 KBytes
[ 4] 7.00-8.00 sec 113 MBytes 950 Mbits/sec 0 95.5 KBytes
[ 4] 8.00-9.00 sec 113 MBytes 948 Mbits/sec 0 95.5 KBytes
[ 4] 9.00-10.00 sec 113 MBytes 950 Mbits/sec 0 95.5 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth Retr
[ 4] 0.00-10.00 sec 1.10 GBytes 949 Mbits/sec 0 sender
[ 4] 0.00-10.00 sec 1.10 GBytes 949 Mbits/sec receiver
iperf Done.
從列印的內容看,預設引數下,Client將連線Server端的5201埠,持續向Server端傳送資料,並統計出每秒傳輸的位元組數、頻寬、出現報文重傳的次數、擁塞視窗(Congestion Window)大小,整個測試將持續10秒鐘;最後將彙總10秒的平均資料,並給出傳送和接收端的統計。
接下來分析一下Server的測試輸出結果:
[jinguang1@localhost ~]$ iperf3 -s
warning: this system does not seem to support IPv6 - trying IPv4
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
Accepted connection from 10.23.5.65, port 10410
[ 5] local 10.23.5.66 port 5201 connected to 10.23.5.65 port 10412
[ ID] Interval Transfer Bandwidth
[ 5] 0.00-1.00 sec 109 MBytes 913 Mbits/sec
[ 5] 1.00-2.00 sec 113 MBytes 948 Mbits/sec
[ 5] 2.00-3.00 sec 113 MBytes 949 Mbits/sec
[ 5] 3.00-4.00 sec 113 MBytes 949 Mbits/sec
[ 5] 4.00-5.00 sec 113 MBytes 949 Mbits/sec
[ 5] 5.00-6.00 sec 113 MBytes 949 Mbits/sec
[ 5] 6.00-7.00 sec 113 MBytes 949 Mbits/sec
[ 5] 7.00-8.00 sec 113 MBytes 949 Mbits/sec
[ 5] 8.00-9.00 sec 113 MBytes 949 Mbits/sec
[ 5] 9.00-10.00 sec 113 MBytes 949 Mbits/sec
[ 5] 10.00-10.04 sec 4.29 MBytes 947 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth
[ 5] 0.00-10.04 sec 0.00 Bytes 0.00 bits/sec sender
[ 5] 0.00-10.04 sec 1.10 GBytes 945 Mbits/sec receiver
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
Server端預設監聽IPv6地址和埠,如果未配置IPv6,會嘗試IPv4。日誌顯示接收了來自10.23.5.65,源埠未10410的測試請求。Client端連續進行了10秒的測試,並顯示了每秒傳輸的位元組數,頻寬資訊;測試結束後會彙總傳送和接收的統計資訊。在Client連線關閉之後會繼續偵聽5201埠。
iperf3 進階指令
iperf3 所提供的選項非常多,以下介紹一些常用的引數。
1. 測試時間和輸出統計資料間隔
-t引數可以指定傳輸測試的持續時間,而-i可以指定統計輸出的間隔時間,如需要持續測試一個小時,每10秒鐘列印一次輸出結果:
iperf3 -c server_ip -i 10 -t 3600
2. 儲存測試結果
--logfile引數可以將輸出的測試結果儲存至檔案中:
iperf3 -c server_ip --logfile stats.txt
3. 設定偵聽埠
iperf3預設使用5201埠,如果需要指定,可以使用-p引數。這需要在Server和Client側都需要進行指定,如使用12345埠:
#server側
iperf3 -s -p 12345
#client側
iperf3 -c server_ip -p 12345
4. JSON 格式輸出
如果需要做一些自動化方面測試和管理工作,需要讀取格式化的測試結果,那可以選擇-J引數,來輸出JSON格式測試結果。
[jinguang1@localhost ~]$ iperf3 -c 10.23.5.66 -J -t 2
{
"start": {
"connected": [{
"socket": 4,
"local_host": "10.23.5.65",
"local_port": 13346,
"remote_host": "10.23.5.66",
"remote_port": 5201
}],
"version": "iperf 3.1.7",
"system_info": "Linux localhost.localdomain 3.10.0-862.9.1.el7.x86_64 #1 SMP Mon Jul 16 16:29:36 UTC 2018 x86_64",
"timestamp": {
"time": "Fri, 07 Sep 2018 01:31:45 GMT",
"timesecs": 1536283905
},
"connecting_to": {
"host": "10.23.5.66",
"port": 5201
},
"cookie": "localhost.localdomain.1536283905.522",
"tcp_mss_default": 1460,
"test_start": {
"protocol": "TCP",
"num_streams": 1,
"blksize": 131072,
"omit": 0,
"duration": 2,
"bytes": 0,
"blocks": 0,
"reverse":
}
},
"intervals": [{
"streams": [{
"socket": 4,
"start": 0,
"end": 1.000059,
"seconds": 1.000059,
"bytes": 118546160,
"bits_per_second": 948313208.319058,
"retransmits": 0,
"snd_cwnd": 97820,
"rtt": 508,
"omitted": false
}],
"sum": {
"start": 0,
"end": 1.000059,
"seconds": 1.000059,
"bytes": 118546160,
"bits_per_second": 948313208.319058,
"retransmits": 0,
"omitted": false
}
}, {
"streams": [{
"socket": 4,
"start": 1.000059,
"end": 2.000063,
"seconds": 1.000004,
"bytes": 117912520,
"bits_per_second": 943296336.710671,
"retransmits": 0,
"snd_cwnd": 97820,
"rtt": 499,
"omitted": false
}],
"sum": {
"start": 1.000059,
"end": 2.000063,
"seconds": 1.000004,
"bytes": 117912520,
"bits_per_second": 943296336.710671,
"retransmits": 0,
"omitted": false
}
}],
"end": {
"streams": [{
"sender": {
"socket": 4,
"start": 0,
"end": 2.000063,
"seconds": 2.000063,
"bytes": 236458680,
"bits_per_second": 945804841.588347,
"retransmits": 0,
"max_snd_cwnd": 97820,
"max_rtt": 508,
"min_rtt": 499,
"mean_rtt": 503
},
"receiver": {
"socket": 4,
"start": 0,
"end": 2.000063,
"seconds": 2.000063,
"bytes": 235998780,
"bits_per_second": 943965299.700324
}
}],
"sum_sent": {
"start": 0,
"end": 2.000063,
"seconds": 2.000063,
"bytes": 236458680,
"bits_per_second": 945804841.588347,
"retransmits":
},
"sum_received": {
"start": 0,
"end": 2.000063,
"seconds": 2.000063,
"bytes": 235998780,
"bits_per_second": 943965299.700324
},
"cpu_utilization_percent": {
"host_total": 3.365885,
"host_user": 0.294900,
"host_system": 3.447099,
"remote_total": 0.054653,
"remote_user": 0.003388,
"remote_system": 0.049958
},
"sender_tcp_congestion": "cubic",
"receiver_tcp_congestion": "cubic"
}
}
5. 使用多條連線進行測試
-P引數可以指定同時連線測試的數量,預設使用一條連線。
[jinguang1@localhost ~]$ iperf3 -c 10.23.5.66 -P 2 -t 2
Connecting to host 10.23.5.66, port 5201
[ 4] local 10.23.5.65 port 13652 connected to 10.23.5.66 port 5201
[ 6] local 10.23.5.65 port 13654 connected to 10.23.5.66 port 5201
[ ID] Interval Transfer Bandwidth Retr Cwnd
[ 4] 0.00-1.00 sec 56.8 MBytes 477 Mbits/sec 0 65.6 KBytes
[ 6] 0.00-1.00 sec 56.9 MBytes 478 Mbits/sec 0 67.0 KBytes
[SUM] 0.00-1.00 sec 114 MBytes 954 Mbits/sec 0
- - - - - - - - - - - - - - - - - - - - - - - - -
[ 4] 1.00-2.00 sec 56.5 MBytes 474 Mbits/sec 0 65.6 KBytes
[ 6] 1.00-2.00 sec 56.5 MBytes 474 Mbits/sec 0 67.0 KBytes
[SUM] 1.00-2.00 sec 113 MBytes 948 Mbits/sec 0
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth Retr
[ 4] 0.00-2.00 sec 113 MBytes 475 Mbits/sec 0 sender
[ 4] 0.00-2.00 sec 113 MBytes 474 Mbits/sec receiver
[ 6] 0.00-2.00 sec 113 MBytes 476 Mbits/sec 0 sender
[ 6] 0.00-2.00 sec 113 MBytes 474 Mbits/sec receiver
[SUM] 0.00-2.00 sec 227 MBytes 951 Mbits/sec 0 sender
[SUM] 0.00-2.00 sec 226 MBytes 949 Mbits/sec receiver
iperf Done.
6. 選擇使用的傳輸協議
iperf3預設使用TCP作為傳輸協議,如果使用UDP則使用-u引數,使用SCTP 則使用--sctp引數。
7. 反向傳輸
預設iperf3使用上傳模式:Client負責傳送資料,Server負責接收;如果需要測試下載速度,則在Client側使用-R引數即可。
---------------------
作者:劉近光
來源:CSDN
原文:https://blog.csdn.net/jinguangliu/article/details/82468482
版權宣告:本文為博主原創文章,轉載請附上博文連結!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25469263/viewspace-2648257/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- iperf3測試寬頻速率
- Linux下使用Speedtest測試網速Linux
- 使用Speedtest CLI測試你的網速
- win10怎麼測自己電腦網速_win10測試自己電腦網速的方法Win10
- JMeter:效能測試利器全解析JMeter
- 單元測試利器Mockito框架Mockito框架
- 網路測速工具
- 最新的 macOS 12 Monterey 系統怎麼測試網速Mac
- JMM測試利器-JCStress學習筆記筆記
- 在CentOS中用Linux命令列測試網速/頻寬安裝CentOSLinux命令列
- CentOS 應該使用哪些Linux命令列測試網速/頻寬?CentOSLinux命令列
- 測速網:2019年上半年全國網速報告
- 測速網:2020年Q2中國網速報告
- 極速匯入elasticsearch測試資料Elasticsearch
- 網路狀態檢測的利器 - ss命令
- 用什麼Linux命令可以測試雲伺服器的網速/頻寬?Linux伺服器
- GAutoNext 全平臺遊戲自動化測試利器遊戲
- 客戶端效能測試利器PerfDog嚐鮮體驗客戶端
- 自動化測試資料生成:Asp.Net Core單元測試利器AutoFixture詳解ASP.NET
- 測速網&雲測速:2019春節期間全國搶紅包速度排行榜
- 弱網測試
- 網路測試
- 新手入門Java自動化測試的利器:Selenium WebDriverJavaWeb
- 測速網:2021年4月全國4G/5G與固網寬頻網速排行
- macOS自帶網路測速功能使用教程Mac
- 前端高質量交付產品利器之自動化測試前端
- 測試圈網紅
- 物聯網測試
- UDP網路測試UDP
- 軟體測試之網站測試如何進行?網站測試方案2022最新報價網站
- 測試人員如何攻破物聯網測試?
- 時延檢測利器-uftrace
- 重試利器之Guava RetryingGuava
- RAKsmart檢測網速和跟蹤路由功能的用途路由
- Java效能測試利器:JMH入門與實踐|得物技術Java
- Flutter VIPER架構-解決複用和測試問題的利器Flutter架構
- 重磅出擊!介面測試利器,為解決你的煩惱而生
- 軟體測試之網站測試如何進行?測試小攻略走起!網站