PowerScaleノードから送信されるTCPゼロ ウィンドウ アップデート パケットのトラブルシューティング

摘要: この記事では、netstatコマンドでウィンドウ カウンターがゼロになる理由について説明します。また、これらの値が増加している理由を調査および調査しながら、関心のある可能性のあるポイントについても説明します。

本文适用于 本文不适用于 本文并非针对某种特定的产品。 本文并非包含所有产品版本。

说明

出力された
 '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ゼロ ウィンドウ アップデート パケットが送信されている間に実行する必要があります。以下は、ライブ統計を取得するためのサンプルスクリプトです。
  • Recv
  • Send-Q
  • 注文外(OOO)
  • ゼロ ウィンドウ (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 値が 0 のままの場合、ノードによって送信される TCP ゼロ ウィンドウ更新パケットは、接続のノード側の TCP 受信ウィンドウが、ノードとリモート接続先間の接続の帯域幅遅延積 (BDP) に対して開始するには小さすぎることを示している可能性があり、一部のノード TCP チューニングを考慮する必要がある場合もあります。

其他信息

詳細については

、次のガイドの「レイテンシー、帯域幅、スループット」セクションを参照してください 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
从其他戴尔用户那里查找问题的答案
支持服务
检查您的设备是否在支持服务涵盖的范围内。