使用Iperf工具進行網路效能測試

realkid4發表於2014-03-21

 

在實際運維故障除錯中,網路裝置效能往往是需要重點關注的物件。網路效能問題是最直接影響系統整體效果的重要因素。網路效能可以包括兩個層面指標:當前實際值和效能極值。實際值是指系統實際執行或者執行高峰期時網路流量和負載情況。而效能極值則是測試網路整體的極限情況。

Oracle資料庫而言,一些重要架構模式,如RACDataguardGolden Gate,都需要可靠地網路結構進行支援。在出現故障的時候,進行網路節點間的測試驗證也是經常需要進行步驟。本篇介紹Iperf工具進行網路頻寬測試,檢視網路裝置的效能瓶頸。

Iperf是一個開源小工具,官方網站為 目前的Iperf支援TCPUDP兩個協議頻寬測試內容,作業系統也覆蓋LinuxWindowsMacOS等主流作業系統。對Oracle而言,TCPUDP兩個協議就已經覆蓋了最常用的協議型別。Oracle RAC在互聯私有網路中使用UDP協議(Windows版本除外),公網資料傳輸訪問則使用TCP協議。

下面我們演示在Linux環境中使用Iperf方法。

 

1、環境配置

 

Iperf工作模式是一個典型的CS模式,工作原理是透過客戶端傳送網路包傳輸到伺服器端,從而計算出網路情況。

首先從官方網站上下載Linux版本的iperfLinux版本的目前是bz壓縮包格式,上傳到伺服器後需要進行額外的解壓過程。

我們準備兩臺伺服器進行測試,伺服器1和伺服器2

伺服器1IP地址為172.16.3.27,版本為Linux核心2.6.32。上傳iperf到對應目錄並解壓。

 

[root@TESTAUDDB ~]# uname -r

2.6.32-131.0.15.el6.x86_64

 

[root@TESTAUDDB ~]# ifconfig

eth0      Link encap:Ethernet  HWaddr 34:40:B5:A1:56:C0 

          inet addr:172.16.3.27  Bcast:172.16.255.255  Mask:255.255.255.0

          inet6 addr: fe80::3640:b5ff:fea1:56c0/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

 

[root@TESTAUDDB ~]# cd /

[root@TESTAUDDB /]# mkdir iperf

[root@TESTAUDDB /]# ls -l | grep iperf

drwxr-xr-x.   2 root   root      4096 Mar 21 08:30 iperf

 

上傳軟體包並且解壓。

 

[root@TESTAUDDB iperf]# bzip2 -d iperf64.bz2

[root@TESTAUDDB iperf]# chmod 755 iperf64

[root@TESTAUDDB iperf]# ls -l

total 856

-rwxr-xr-x. 1 root root 876211 Mar 21 08:33 iperf64

 

第二臺伺服器IP地址為172.16.3.28,同樣為Linux 2.6.32

 

[root@TESTAUDAPP ~]# hostname

TESTAUDAPP

[root@TESTAUDAPP ~]# uname -r

2.6.32-131.0.15.el6.x86_64

 

eth0      Link encap:Ethernet  HWaddr 34:40:B5:A1:53:D8 

          inet addr:172.16.3.28  Bcast:172.16.255.255  Mask:255.255.255.0

          inet6 addr: fe80::3640:b5ff:fea1:53d8/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:3350494 errors:0 dropped:0 overruns:0 frame:0

 

上傳iperf目錄,解壓和伺服器1相同,過程略。

 

[root@TESTAUDAPP iperf]# ls -l

total 856

-rwxr-xr-x. 1 root root 876211 Mar 21 09:29 iperf64

 

注意:作為IPerf伺服器端的主機,最好關閉防火牆程式或者將其5001埠開啟。

 

[root@TESTAUDDB iperf]# service iptables stop

iptables: Flushing firewall rules: [  OK  ]

iptables: Setting chains to policy ACCEPT: nat mangle filter [  OK  ]

iptables: Unloading modules: [  OK  ]

 

2IPerf進行TCP協議診斷測試

 

我們先進行簡單的TCP協議網路測試。在伺服器端(3.27)啟動Iperf程式,以伺服器模式啟動。

 

(在3.27上)

[root@TESTAUDDB iperf]# ./iperf64 -s

---------------------------------------------------

Server listening on TCP port 5001

TCP window size: 85.3 KByte (default)

-----------------------------------------------

 

在客戶端,透過引數-c啟動程式為客戶端模式。客戶端引數-c取值為連線伺服器IP地址。

 

 

[root@TESTAUDAPP iperf]# ./iperf64 -c 172.16.3.27

----------------------------------------------

Client connecting to 172.16.3.27, TCP port 5001

TCP window size: 16.0 KByte (default)

------------------------------------------

[  3] local 172.16.3.28 port 64207 connected with 172.16.3.27 port 5001

[ ID] Interval       Transfer     Bandwidth

[  3]  0.0-10.0 sec  1.10 GBytes    943 Mbits/sec

 

最後一行為測試結果。Interval表示連線測試的時間範圍,通常為10sTransfer為在這個時間段內,客戶端和伺服器傳輸的資料總量。結果Bandwidth是我們最關注的就是網路傳輸速率,也就是頻寬。

從實驗結果可以看出,兩臺伺服器之間的網路頻寬為943Mbits/sec

 

3UDP協議測試

 

UDP協議是RAC私有網路互聯的標準協議型別。使用iperf可以進行標準測試頻寬。透過額外的-u引數,可以開啟IPerf進入UDP工作模式。

 

[root@TESTAUDDB iperf]# ./iperf64 -s -u

-----------------------------------------------

Server listening on UDP port 5001

Receiving 1470 byte datagrams

UDP buffer size: 4.00 MByte (default)

--------------------------------------------

 

客戶端方面,也需要加入-u引數進行UDP資料包傳送。

 

[root@TESTAUDAPP iperf]# ./iperf64 -u -c 172.16.3.27

-------------------------------------

Client connecting to 172.16.3.27, UDP port 5001

Sending 1470 byte datagrams

UDP buffer size: 4.00 MByte (default)

--------------------------------------------

[  3] local 172.16.3.28 port 24436 connected with 172.16.3.27 port 5001

[ ID] Interval       Transfer     Bandwidth

[  3]  0.0-10.0 sec  1.25 MBytes  1.05 Mbits/sec

[  3] Sent 893 datagrams

[  3] Server Report:

[ ID] Interval       Transfer     Bandwidth       Jitter   Lost/Total Datagrams

[  3]  0.0-10.0 sec  1.25 MBytes  1.05 Mbits/sec  0.005 ms    0/  893 (0%)

 

測試結果中,UDP連線頻寬為1.05Mbit/sec

 

對指定時間傳送的資料量,1.25Mbytes是預設取值。我們可以根據實際的情況進行調節,透過引數-b可以設定資料量。

 

[root@TESTAUDAPP iperf]# ./iperf64 -u -c 172.16.3.27 -b 10m

------------------------------------------------

Client connecting to 172.16.3.27, UDP port 5001

Sending 1470 byte datagrams

UDP buffer size: 4.00 MByte (default)

--------------------------------------------------

[  3] local 172.16.3.28 port 9254 connected with 172.16.3.27 port 5001

[ ID] Interval       Transfer     Bandwidth

[  3]  0.0-10.0 sec  11.9 MBytes  10.0 Mbits/sec

[  3] Sent 8505 datagrams

[  3] Server Report:

[ ID] Interval       Transfer     Bandwidth       Jitter   Lost/Total Datagrams

[  3]  0.0-10.0 sec  11.9 MBytes  10.0 Mbits/sec  0.006 ms    0/ 8505 (0%)

 

實際測試中,可以設定比較大的資料包值,給予一定的資料壓力。但是-b只能在UDP協議中使用,在TCP協議中不能用。

 

[root@TESTAUDAPP iperf]# ./iperf64 -c 172.16.3.27 -b 10m

WARNING: option -b implies udp testing

-------------------------------------------

Client connecting to 172.16.3.27, UDP port 5001

Sending 1470 byte datagrams

UDP buffer size: 4.00 MByte (default)

---------------------------------------

[  3] local 172.16.3.28 port 33902 connected with 172.16.3.27 port 5001

write2 failed: Connection refused

[ ID] Interval       Transfer     Bandwidth

[  3]  0.0- 0.0 sec  1.44 KBytes  9.58 Mbits/sec

[  3] Sent 1 datagrams

read failed: Connection refused

[  3] WARNING: did not receive ack of last datagram after 1 tries.

 

最後,測試一下本機之間的連線情況,也就是連線127.0.0.1本地地址。

 

[root@TESTAUDDB iperf]# ./iperf64 -c 127.0.0.1

-------------------------------------

Client connecting to 127.0.0.1, TCP port 5001

TCP window size: 49.6 KByte (default)

--------------------------------------------

[  3] local 127.0.0.1 port 17502 connected with 127.0.0.1 port 5001

[ ID] Interval       Transfer     Bandwidth

[  3]  0.0-10.0 sec  13.0 GBytes  11.2 Gbits/sec

 

4、結論

 

IPerf是我們進行網路實測的好工具,記錄下來,留待需要的朋友不時之需。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/17203031/viewspace-1126475/,如需轉載,請註明出處,否則將追究法律責任。

相關文章