在實際運維故障調試中,網絡設備性能往往是需要重點關注的對象。網絡性能問題是最直接影響系統整體效果的重要因素。網絡性能可以包括兩個層面指標:當前實際值和性能極值。實際值是指系統實際運行或者運行高峰期時網絡流量和負載情況。而性能極值則是測試網絡整體的極限情況。
對Oracle數據庫而言,一些重要架構模式,如RAC、Dataguard和Golden Gate,都需要可靠地網絡結構進行支持。在出現故障的時候,進行網絡節點間的測試驗證也是經常需要進行步驟。本篇介紹Iperf工具進行網絡帶寬測試,查看網絡設備的性能瓶頸。
Iperf是一個開源小工具,官方網站為http://iperf.fr/。 目前的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。
更多詳情見請繼續閱讀下一頁的精彩內容: http://www.linuxidc.com/Linux/2014-05/101156p2.htm