对 PowerScale 节点发送的 TCP 零窗口更新数据包进行故障处理
摘要: 本文讨论 netstat 命令中窗口计数器为零的原因。它还讨论了在研究和调查这些值增加的原因时可能的兴趣点。
本文适用于
本文不适用于
本文并非针对某种特定的产品。
本文并非包含所有产品版本。
说明
该命令的输出
例子:
在大多数情况下,节点发送的 TCP 零窗口更新数据包表明节点上的接收应用程序(进程)(NFS、SMB 等)从接收缓冲区中提取数据的速度很慢。这可以通过输出中连接的 Recv-Q 列中显示的一致非零值来表示
例子:
总之,如果在为连接发送 TCP 零窗口更新数据包时连接的 Recv-Q 值仍然升高,则应在接收应用程序、CPU、磁盘等处对瓶颈进行调查。
如果连接的 Recv-Q 值保持为零,则节点发送的 TCP 零窗口更新数据包也可能表明连接节点侧的 TCP 接收窗口太低,无法开始用于节点和远程目的地之间连接的带宽延迟积 (BDP),并且可能需要考虑某些节点 TCP 调整。
'netstat -anT -p tcp'来自节点的命令显示 TCP 零窗口数据包计数(0-win 列)。0-win 列中的值指示到远程设备(外部地址)的 TCP 连接(本地地址)的节点发送 TCP 零窗口更新数据包的次数。当节点的 TCP 接收窗口已减小到零或大小太小而无法容纳全尺寸数据段时,会发生这种情况。
例子:
Cluster-1# netstat -anT -p tcp Active Internet connections (including servers) Proto Rexmit OOORcv 0-win maxswnd maxseg srtt srtvar rexmt sndwnd sncwnd rcvwnd delack SR SS ND AS Local Address Foreign Address tcp4 0 0 1001 2097920 1460 47ms 23ms 342ms 2097664 190488 131400 99ms X X X X 100.89.53.100.445 100.90.164.11.52765 ...这样做的最终结果是远程设备将无法传输数据,从而引入导致(写入)延迟增加的延迟,直到节点发送 TCP 窗口更新,指示它现在可以接收的数据量。
在大多数情况下,节点发送的 TCP 零窗口更新数据包表明节点上的接收应用程序(进程)(NFS、SMB 等)从接收缓冲区中提取数据的速度很慢。这可以通过输出中连接的 Recv-Q 列中显示的一致非零值来表示
'netstat -an tcp'相同名称。例如,多次运行以下命令以查看 Recv-Q 是否始终已满。
例子:
Cluster-1# netstat -an tcp
Active Internet connections (including servers)
Proto Recv-Q Send-Q Local Address Foreign Address (state)
tcp4 131400 0 100.89.53.100.445 100.90.164.11.52765 ESTABLISHED
... 这是一个实时计数器,因此当节点为连接发送 TCP 零窗口更新数据包时,需要运行此命令。以下是用于从中检索实时统计信息的示例脚本:
- 接收
- Send-Q的
- 订单外 (OOO)
- 零 Windows (0-win)
- 重新传输
# mkdir /ifs/data/Isilon_Support/$(date +%d-%m-%Y)/
echo; while sleep 10 ; do echo "######### Live Send Rec Queue Q: #########"; date ; netstat -an4x -p tcp | awk '{ if (( $2 != 0 ) || ($3 != 0)) print $0 }'; echo; sleep 1; echo "######### Live OoO / 0-win / Retrans: #########" ; date; netstat -an4T -p tcp | awk '{ if (( $2 != 0 ) || ($3 != 0) || ($4 != 0)) print $0 }'; done >> `hostname`.TCP_specs.out 持续升高的 Recv-Q 意味着数据已放在接收缓冲区中,但应用程序尚未调用 recv() 将其从接收缓冲区复制到应用程序缓冲区。这表明应用程序过载或无法及时处理传入数据。一旦数据到达接收队列中,就应该立即处理它,如果应用程序没有这样做,那么它就会被要求做超出其处理能力的工作。
总之,如果在为连接发送 TCP 零窗口更新数据包时连接的 Recv-Q 值仍然升高,则应在接收应用程序、CPU、磁盘等处对瓶颈进行调查。
如果连接的 Recv-Q 值保持为零,则节点发送的 TCP 零窗口更新数据包也可能表明连接节点侧的 TCP 接收窗口太低,无法开始用于节点和远程目的地之间连接的带宽延迟积 (BDP),并且可能需要考虑某些节点 TCP 调整。
其他信息
有关详细信息,请参阅以下指南的 “延迟、带宽和吞吐量” 部分:
https://www.delltechnologies.com/asset/en-us/products/storage/industry-market/h16463-isilon-advanced-networking-fundamentals.pdf
https://www.delltechnologies.com/asset/en-us/products/storage/industry-market/h16463-isilon-advanced-networking-fundamentals.pdf
受影响的产品
PowerScale OneFS文章属性
文章编号: 000221738
文章类型: How To
上次修改时间: 19 4月 2024
版本: 2
从其他戴尔用户那里查找问题的答案
支持服务
检查您的设备是否在支持服务涵盖的范围内。