Data Domain:使用 iperf 故障診斷網路效能
Summary: 使用 iperf 工具和 DD net iperf 命令測量端點之間的原始網路輸送量,藉由驗證網路路徑中的 NIC 對 NIC 頻寬,協助診斷備份、還原或複製緩慢或失敗的情況。
Symptoms
本文提供使用 iperf 工具 和 DD net iperf 命令 ,以測量媒體伺服器和 Data Domain (DD) 系統之間,或兩個 DD 系統之間的網路輸送量。
iperf 公用程式是業界標準工具,旨在測量兩個端點之間的原始網路效能。它有助於驗證底層 NIC-to-NIC bandwidth 使用 TCP 或 UDP 流量跨所有中間網路元件(如交換機、路由器、防火牆和 WAN 鏈路)。這對於將網路相關問題與應用程式級問題隔離開來至關重要。
您可能需要執行 iperf 遇到下列任何症狀時:
- 在媒體伺服器與 DD 之間透過 IP 使用 CIFS、NFS 或 DD Boost 降低備份或還原效能的速度。
- 媒體伺服器和 DD 之間透過 CIFS、NFS 或 DD Boost 備份或還原失敗。
- 兩個 DD 系統之間的複製效能問題 (例如集合、目錄、MTree 複寫或受管理檔案複寫)。
Cause
備份、還原或複製期間的性能問題通常源於 網路瓶頸,而不是應用程式級別的限制。這些瓶頸可能發生在資料路徑的任何位置,例如媒體伺服器與 Data Domain 系統之間,或兩個 DD 系統之間,可能包括:
- NIC 或中間網路裝置 (交換器、路由器、防火牆) 的頻寬限制。
- MTU 不相符 ,導致分段和重新傳輸。
- 由於擁塞、電纜故障或 QoS 配置錯誤而導致的高延遲或數據包丟失。
- TCP 視窗縮放問題 或緩衝區大小不足影響輸送量。
- 防火牆或 IDS/IPS 檢查的額外負荷 ,以節流 SMB/NFS/DDBoost 流量。
因為這些問題在應用層通常是不可見的, iperf 用於測量端點之間的原始 TCP/UDP 輸送量,驗證基礎網路效能,不受 CIFS、NFS 或 DD Boost 影響。這有助於隔離備份/還原緩慢是由網路限制還是應用程式/存儲配置引起的。
Resolution
Iperf 是廣泛使用的開放原始碼網路效能測試公用程式,可產生 TCP 和 UDP 流量串流,以測量可用的頻寬和輸送量。它可準確評估兩個端點之間的原始網路容量,例如媒體伺服器和 Data Domain (DD) 系統之間,或兩個 DD 系統之間。通過類比傳輸層的數據傳輸, iperf 幫助識別交換機、路由器和防火牆等中間元件之間的網路瓶頸、延遲問題和數據包丟失 - 獨立於 CIFS、NFS 或 DD Boost 等應用程式級協定。
Iperf 有兩種模式:伺服器和用戶端。
第一節哪裡可以取得 IPERF 工具:
有三種方式可取得 iperf 可執行檔:
方法 1:
DD 有 "net iperf" 命令為貴組織設定主要和次要 IT 連絡人。如果您只想測試兩個 DD 之間的頻寬,請使用 "net iperf" 命令就足夠了。
方法二:
該方法 Iperf 工具可在 DDR 上取得,路徑為 /ddr/var/tools/iperf 資料夾。若要取得 iperf 可執行檔,請對應 /ddvar 在媒體伺服器上使用 CIFS 或 NFS,並將其放在任何資料夾下,例如 /tmp,或 C:\EMC,或 C:\ddtools。
1.若要建立暫時的 CIFS 共用,用於 /ddvar 其中 iPerf 適用於 Windows 的公用程式:
cifs share create <Share Name is recommended to be 'ddvar' without any slash> path <Path to the directory being shared '/ddvar'> clients <IP of relevant remote Windows Host>
Eg: sysadmin@dd# cifs share create ddvar path /ddvar clients <IP of affected backup Host>
移除暫時的 CIFS 共用:
cifs share destroy <Temporary Share Name>
Eg: sysadmin@dd# cifs share destroy ddvar
2.若要為 Linux 建立暫存的 NFS 共用:
nfs export create <Share Name is recommended to be 'ddvar' without any slash> path <Path to the directory being shared '/ddvar' clients <IP of relevant remote Linux Host>
Eg: sysadmin@dd# nfs export create ddvar path /ddvar clients <IP of relevant remote Linux Host>
若要移除暫存 NFS 共用:
nfs export destroy <Temporary Share Name>
Eg: sysadmin@dd# nfs export destroy ddvar
方法 3:
使用 scp (UNIX) 或 pscp (Windows):
UNIX:
scp <localuser>@<IP or hostname of DD>:/ddr/var/tools/iperf/<OS>/<iperf executable> <local path>
example: scp sysadmin@10.10.10.10:/ddr/var/tools/iperf/Linux/iperf /tmp/iperf
OS/iperf executable:
HP-UX_RISC/iperf
AIX/iperf
Linux/iperf
HP-UX_IA64/iperf
Solaris_Sparc/iperf
Windows/iperf.exe
Windows:
pscp -scp <localuser>@<IP or hostname of DD>:/ddr/var/tools/iperf/Windows/iperf.exe <local path>
example: pscp -scp sysadmin@10.10.10.10:/ddr/var/tools/iperf/Windows/iperf.exe C:\ddtools\iperf.exe
pscp (命令列版本 scp 若為 Windows),則可從 putty.org (外部)。 Winscp 無法從 DD 下載。
第二節在 DD 上尋找要用於 iperf 測試的 IP 位址。#net show hardware, to see which port, 1G/10G link#net show setting, to see the IP assigned to the port
第三節如何執行 IPERF
例一:如何在兩個 DD 之間執行 IPERF:
在目的地 DD 上,使用 putty 工作階段,
#net iperf server
然後在來源 DD 上,
#net iperf client <DestinationDDIP> interval 10 duration 60
#net iperf server status,以確認 iperf 已停止。-上述命令是查看從來源 DD 到目的地 DD 的可用網路頻寬,有 1 個串流,間隔 10 秒,持續 60 秒。
-您可以使用以下命令執行上述命令
"connection 10" 以測試具有 10 個連接的網路頻寬,該連接應大於 1 個連接。如果這兩個 DD 之間同時進行複寫,
iperf 結果顯示除了複製已使用的網路頻寬之外的剩餘網路頻寬。您可以使用 #iostat 2 同時查看埠上使用的輸送量。-您可以反向測試,以相反的方式查看可用頻寬,即。在目的地至來源 DD 之間。
例二:如何從媒體伺服器在 DD 上執行 IPERF。這可以用於解決備份/寫入速度緩慢的問題。
在 DD 上,使用 putty 工作階段,
#net iperf server --- This means DD in server mode and is listening
在媒體伺服器、Windows 或 Linux 上:
#iperf -c <DDIPaddress> -t 60 -i 10
注意:-測試后,在源上使用ctl+c停止iperf。
#net iperf server status,
確認 iperf 已停止。
-您可以使用 -P 10 運行上述命令,以 10 個連接測試網路頻寬,該連接應大於 1 個連接。
-您需要使用選項 -w 256K,以指定視窗大小。
Example:
root@client 1 iperf-2.0.5]# iperf -c 11.65.228.28 -i 3 -t 30 -w 256K
------------------------------------------------------------
Client connecting to 11.65.228.28, TCP port 5001
TCP window size: 512 KByte (WARNING: requested 256 KByte)
------------------------------------------------------------
[ 3] local 11.65.249.45 port 63535 connected with 11.65.228.28 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0- 3.0 sec 2.79 GBytes 7.98 Gbits/sec
[ 3] 3.0- 6.0 sec 2.86 GBytes 8.19 Gbits/sec
[ 3] 6.0- 9.0 sec 2.90 GBytes 8.30 Gbits/sec
注意:在上述輸出中,.45 是來源 IP,媒體伺服器用來寫入 DD。 .28 是用於備份的 DD IP。
例三:如何從 DD 將 IPERF 執行至媒體伺服器:這可用於緩慢還原/讀取問題。
在媒體伺服器、Windows 或 Linux 上:
#iperf -s
在 DD 上:
#net iperf client <ip address> duration 60 interval 10
注意:
-您可能需要使用選項 -p 5001 或其他 # 來指定埠。
-您可能需要使用選項 -w 256K 來指定視窗大小。
第四節後續步驟
理想情況下,在1Gbps埠之間,我們希望看到800Mbps到900Mbps的輸送量,而沒有其他任何使用頻寬。
在 10Gbps 連接埠之間,我們希望看到幾個 Gbps 的輸送量,而沒有其他項目在使用頻寬時。
- 當輸送量低於上述理想線速時,請使用多個連接(10 或 20)以查看可用頻寬增加。
-還要檢查路由並確保 MTU 始終一致。(請參閱下方的備註,如何使用 ping 檢查 MTU)
Additional Information
驗證整個網路路徑的 MTU 一致性。
若要確認端對端 (用戶端→網路→儲存裝置) 的 MTU 設定一致,請使用 ping 命令,並帶有 “不分段 ”選項。這可確保數據包不會沿路徑分段。
Windows (標準 MTU 1500):ping -f -l 1472(1472-bytes payload + 28-byte header = 1500 MTU)
Windows (巨型幀 MTU 9000):ping -f -l 8972(8972 bytes payload + 28-bytes header = 9000 MTU)
從 Data Domain (DD):net ping count 2 packet-size 1472 path-mtu donet ping count 2 packet-size 8972 path-mtu do
為什麼這很重要:
檢查 MTU 可確保在所有網路裝置上一致地支援巨型訊框或標準訊框,防止可能降低 CIFS 還原效能的分段和封包遺失。