PowerScaleノードから送信されるTCPゼロ ウィンドウ アップデート パケットのトラブルシューティング
Summary: この記事では、netstatコマンドでウィンドウ カウンターがゼロになる理由について説明します。また、これらの値が増加している理由を調査および調査しながら、関心のある可能性のあるポイントについても説明します。
This article applies to
This article does not apply to
This article is not tied to any specific product.
Not all product versions are identified in this article.
Instructions
出力された
例:
ほとんどの場合、ノードから送信されたTCPゼロ ウィンドウ更新パケットは、ノード(NFS、SMBなど)上の受信側アプリケーション(プロセス)が受信バッファーからデータを引き出すのに時間がかかることを示します。これは、の出力の接続の Recv-Q 列に表示される一貫性のあるゼロ以外の値によって示すことができます。
例:
要約すると、TCP ゼロ ウィンドウ アップデート パケットが接続に対して送信されている間、接続の Recv-Q 値が上昇したままの場合は、受信側アプリケーション、CPU、ディスクなどでボトルネックの調査を実行する必要があります。
接続の Recv-Q 値が 0 のままの場合、ノードによって送信される 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ゼロ ウィンドウ アップデート パケットが送信されている間に実行する必要があります。以下は、ライブ統計を取得するためのサンプルスクリプトです。
- 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 チューニングを考慮する必要がある場合もあります。
Additional Information
詳細については
、次のガイドの「レイテンシー、帯域幅、スループット」セクションを参照してください 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
Affected Products
PowerScale OneFSArticle Properties
Article Number: 000221738
Article Type: How To
Last Modified: 19 Apr 2024
Version: 2
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.