linux測試帶寬命令,Linux服務(wù)器網(wǎng)絡(luò)帶寬測試iperf
iperf原理解析 iperf工具可以用來測量TCP或者是UDP的網(wǎng)絡(luò)吞吐量,即bandwidth(帶寬)測試。 iPerf的主要目標(biāo)是幫助調(diào)整特定路徑上的TCP連接。 眾所周知,TCP最基本的調(diào)整問題是調(diào)整TCP窗口大小,它控制在任何一點(diǎn)在網(wǎng)絡(luò)中可以有多少數(shù)據(jù)。如果它太小,發(fā)送者將會(huì)在一段時(shí)間內(nèi)處于空閑狀態(tài),從而影響發(fā)送TCP的性能。TCP窗口大小的理論值是:瓶頸帶寬與往返延時(shí)的乘積,即: bottleneck bandwidth * round trip time 例如瓶頸鏈路是45 Mbit/sec,使用ping命令測量到的往返時(shí)延是42ms。那么TCP窗口的理論值是 45 Mbit/sec * 42 ms = (45e6) * (42e-3) = 1890000 bits= 230 KByte
在實(shí)際測試中,可以以計(jì)算得到的TCP窗口為基準(zhǔn),在這個(gè)值(如上面為230KByte)的基礎(chǔ)上,升高或者降低TCP窗口大小,可以得到一個(gè)性能的提升?! ?帶寬測試一般來說采用UDP模式測試,因?yàn)樵赨DP模式下能測出極限帶寬、路徑時(shí)延、丟包率,這些測試項(xiàng)會(huì)在帶寬測試報(bào)告中打印出來。 在進(jìn)行測試時(shí),先以鏈路理論帶寬作為數(shù)據(jù)發(fā)送速率進(jìn)行測試,例如,從客戶端到服務(wù)器之間的鏈路的理論帶寬為1000Mbps,先用 -b 1000M進(jìn)行測試,然后根據(jù)測試結(jié)果(包括實(shí)際帶寬,時(shí)延抖動(dòng)和丟包率),再以實(shí)際帶寬作為數(shù)據(jù)發(fā)送速率進(jìn)行測試,會(huì)發(fā)現(xiàn)時(shí)延抖動(dòng)和丟包率比第一次好很多,重復(fù)測試幾次,就能得出穩(wěn)定的實(shí)際帶寬。
iperf是基于server-client模式工作的,因此,要使用iperf測試帶寬,需要建立一個(gè)服務(wù)端(用于丟棄流量)和一個(gè)客戶端(用于產(chǎn)生流量)。 iperf服務(wù)端或者是客戶端,都是使用的同一個(gè)命令,不過是啟動(dòng)命令的選項(xiàng)不同而已。
1. iperf服務(wù)啟動(dòng)方式 先看下服務(wù)端和客戶端的啟動(dòng)方式: 服務(wù)端 iperf -s 客戶端 iperf -c 服務(wù)端IP地址 注意:iperf默認(rèn)測試的是TCP協(xié)議的帶寬,如果需要測試UDP的帶寬,則需要加上-u選項(xiàng)
2. iperf常用選項(xiàng) iperf選項(xiàng)分為 通用選項(xiàng)、服務(wù)端特定選項(xiàng)以及客戶端特定選項(xiàng) 通用選項(xiàng) -f <kmKM> 報(bào)告輸出格式。 [kmKM] format to report: Kbits, Mbits, KBytes, MBytes -i <sec> 在周期性報(bào)告帶寬之間暫停n秒。如周期是10s,則-i指定為2,則每隔2秒報(bào)告一次帶寬測試情況,則共計(jì)報(bào)告5次 -p 設(shè)置服務(wù)端監(jiān)聽的端口,默認(rèn)是5001 -u 使用UDP協(xié)議測試 -w n<K/M> 指定TCP窗口大小 -m 輸出MTU大小 -M 設(shè)置MTU大小 -o <filename> 結(jié)果輸出至文件
服務(wù)端選項(xiàng) -s iperf服務(wù)器模式 -d 以后臺(tái)模式運(yùn)行服務(wù)端 -U 運(yùn)行一個(gè)單一線程的UDP模式
客戶端選項(xiàng) -b , --bandwidth n[KM] 指定客戶端通過UDP協(xié)議發(fā)送數(shù)據(jù)的帶寬(bit/s)。默認(rèn)是1Mbit/s -c <ServerIP> 以客戶端模式運(yùn)行iperf,并且連接至服務(wù)端主機(jī)ServerIP。 eg: iperf -c <server_ip> -d 雙向測試 -t 指定iperf帶寬測試時(shí)間,默認(rèn)是10s。 eg: iperf -c <server_ip> -t 20 -P 指定客戶端并發(fā)線程數(shù),默認(rèn)只運(yùn)行一個(gè)線程。 eg,指定3個(gè)線程 : iperf -c <server_ip> -P 3 -T 指定TTL值
3.實(shí)例 master 為服務(wù)端 minion 為客戶端 注意:必須先運(yùn)行iperf server 2秒返回一次帶寬測試報(bào)告
# iperf -c 120.24.25.65 ------------------------------------------------------------ Client connecting to 120.24.25.65, TCP port 5001 TCP window size: 19.3 KByte (default) ------------------------------------------------------------ [ 3] local 113.58.113.136 port 49959 connected with 120.24.25.65 port 5001 [ ID] Interval Transfer Bandwidth [ 3] 0.0-10.3 sec 3.12 MBytes 2.54 Mbits/sec [root@iZwz96l7gxttha3j1hk494Z ~]# iperf -s -i 2 ------------------------------------------------------------ Server listening on TCP port 5001 TCP window size: 85.3 KByte (default) ------------------------------------------------------------ [ 4] local 113.58.113.136 port 5001 connected with 120.24.25.65 port 56238 [ ID] Interval Transfer Bandwidth [ 4] 0.0- 2.0 sec 792 KBytes 3.24 Mbits/sec [ 4] 2.0- 4.0 sec 561 KBytes 2.30 Mbits/sec [ 4] 4.0- 6.0 sec 513 KBytes 2.10 Mbits/sec [ 4] 6.0- 8.0 sec 609 KBytes 2.50 Mbits/sec [ 4] 8.0-10.0 sec 529 KBytes 2.17 Mbits/sec [ 4] 0.0-11.3 sec 3.25 MBytes 2.41 Mbits/sec |
|