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 之间使用 CIFS、NFS 或 DD Boost over IP 时,备份或还原性能降低。
- 通过 CIFS、NFS 或 DD Boost 在媒体服务器和 DD 之间备份或恢复失败。
- 两个 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 可执行文件:
方法一:
DD有 "net iperf" 命令确认该锁定已释放。如果您只想测试两个 DD 之间的带宽,请使用 "net iperf" 命令就足够了。
方法2:
将 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 下载。
第二节:查找要在 iperf 测试中使用的DD 上的 IP 地址。#net show hardware, to see which port, 1G/10G link#net show setting, to see the IP assigned to the port
第三节:如何运行 IPERF
示例 I:如何在两个 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 是媒体服务器用于写入 DD 的源 IP。 .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的吞吐量,而没有其他带宽使用
。在 10 Gbps 端口之间,我们希望看到没有其他带宽使用时的几 Gbps 吞吐量。
- 当吞吐量低于上述理想线路速度时,使用多个连接(10 或 20)以查看可用带宽增加。
- 还要检查路由并确保 MTU 始终一致。(请参阅下面的注释,如何使用 ping 检查 MTU)
Additional Information
验证网络路径中的 MTU 一致性。
要确认 MTU 设置端到端一致(客户端→网络→存储),请使用 ping 命令和 Do not Fragment 选项。这可确保数据包不会沿路径碎片化。
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 还原性能的碎片和数据包丢失。