使用Iperf工具進行網路效能測試
在實際運維故障除錯中,網路裝置效能往往是需要重點關注的物件。網路效能問題是最直接影響系統整體效果的重要因素。網路效能可以包括兩個層面指標:當前實際值和效能極值。實際值是指系統實際執行或者執行高峰期時網路流量和負載情況。而效能極值則是測試網路整體的極限情況。
對Oracle資料庫而言,一些重要架構模式,如RAC、Dataguard和Golden Gate,都需要可靠地網路結構進行支援。在出現故障的時候,進行網路節點間的測試驗證也是經常需要進行步驟。本篇介紹Iperf工具進行網路頻寬測試,檢視網路裝置的效能瓶頸。
Iperf是一個開源小工具,官方網站為。 目前的Iperf支援TCP和UDP兩個協議頻寬測試內容,作業系統也覆蓋Linux、Windows、MacOS等主流作業系統。對Oracle而言,TCP和UDP兩個協議就已經覆蓋了最常用的協議型別。Oracle RAC在互聯私有網路中使用UDP協議(Windows版本除外),公網資料傳輸訪問則使用TCP協議。
下面我們演示在Linux環境中使用Iperf方法。
1、環境配置
Iperf工作模式是一個典型的CS模式,工作原理是透過客戶端傳送網路包傳輸到伺服器端,從而計算出網路情況。
首先從官方網站上下載Linux版本的iperf,Linux版本的目前是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 ]
2、IPerf進行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表示連線測試的時間範圍,通常為10s。Transfer為在這個時間段內,客戶端和伺服器傳輸的資料總量。結果Bandwidth是我們最關注的就是網路傳輸速率,也就是頻寬。
從實驗結果可以看出,兩臺伺服器之間的網路頻寬為943Mbits/sec。
3、UDP協議測試
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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 網路效能測試工具iperf的使用
- Linux iperf 網路傳輸效能測試工具Linux
- Linux和Windows下網路測試工具的安裝使用(iperf)LinuxWindows
- netperf網路效能測試工具的使用詳解
- 使用Loadrunner進行效能測試
- 使用 Sysbench 進行 Linux 效能測試Linux
- 測試網路效能的小工具
- 【網路】效能指標與測試工具指標
- 在Linux中,如何進行網路效能的峰值測試?Linux
- 網速測試利器-iperf3
- fiddler進行修改網路進行弱網測試
- iperf測試抓包
- 【PG效能測試】pgbench效能測試工具簡單使用
- 『言善信』Fiddler工具 — 14、使用Fiddler進行弱網測試
- 基於滴滴雲之 Netperf 網路效能測試工具的搭建及使用
- 使用python對oracle進行簡單效能測試PythonOracle
- 使用 fio 工具測試 EBS 效能
- 雲網路效能測試流程
- 【TEST】Oracle19c使用benchmarksql進行效能測試OracleSQL
- 使用 jMeter 對 SAP Spartacus 進行併發效能測試JMeter
- 效能測試進階實踐篇:10分鐘教你使用JMeter進行websocket測試!JMeterWeb
- 哪些功能需要進行效能測試?
- postman工具進行介面測試Postman
- JMeter效能測試工具使用入門JMeter
- 網站效能壓力測試工具:Apache ab使用詳解網站Apache
- 使用抓包工具fiddler和apipost進行介面測試API
- 使用抓包工具 fiddler 和 apipost 進行介面測試API
- iperf3測試寬頻速率
- 使用 EOLINKER 進行介面測試的最佳路徑 (下)
- 網路基礎-常用網路測試工具
- 物聯網平臺和裝置如何進行效能測試
- PR效能測試工具升級到全鏈路效能測試與分析平臺
- c++效能測試工具:google benchmark進階(一)C++Go
- 效能測試工具 - Siege
- 使用PostMan進行API測試PostmanAPI
- 使用 HTTPie 進行 API 測試HTTPAPI
- 什麼情況下進行效能測試
- 使用 OSProfiler 對 OpenStack 進行效能測量
- 移動效能測試---工具PerfDog簡單使用