Fehlerbehebung bei TCP-Zero-Window-Aktualisierungspaketen, die von einem PowerScale-Node gesendet werden

Summary: In diesem Artikel wird der Grund für Nullfensterzähler durch den Befehl netstat erläutert. Es diskutiert auch mögliche Points of Interest bei der Recherche und Untersuchung, warum diese Werte steigen. ...

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

Die Ausgabe der
 'netstat -anT -p tcp'
Befehl von einem Node zeigt die Anzahl der TCP-Nullfensterpakete an (Spalte 0-win). Die Werte in der Spalte 0-win geben an, wie oft der Node der TCP-Verbindung (lokale Adresse) an das Remotegerät (fremde Adresse) ein TCP-Zero-Window-Updatepaket gesendet hat. Dies tritt auf, wenn das TCP-Empfangsfenster des Node auf Null oder auf eine Größe reduziert wurde, die zu niedrig ist, um in ein Datensegment voller Größe zu passen.
Beispiel:
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
...
Das Nettoergebnis ist, dass das Remotegerät keine Daten übertragen kann, was zu Verzögerungen führt, die zu einer erhöhten Latenz (Schreibvorgängen) führen, bis der Node eine Aktualisierung des TCP-Fensters sendet, die angibt, wie viele Daten er jetzt empfangen kann. 
In den meisten Fällen weisen vom Node gesendete TCP-Zero-Window-Aktualisierungspakete darauf hin, dass die empfangende Anwendung (der Prozess) auf dem Node (NFS, SMB usw.) Daten nur langsam aus dem Empfangspuffer abruft. Dies kann durch einen konsistenten Wert ungleich Null angezeigt werden, der in der Spalte Recv-Q für die Verbindung in der Ausgabe der
 'netstat -an tcp'
verwenden. Führen Sie beispielsweise den folgenden Befehl mehrmals aus, um zu überprüfen, ob Recv-Q konsistent voll ist.
Beispiel:
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
...
Da es sich um einen Echtzeitzähler handelt, muss dieser Befehl ausgeführt werden, während der Knoten Aktualisierungspakete mit dem TCP-Nullfenster für die Verbindung sendet. Im Folgenden finden Sie ein Beispielskript zum Abrufen von Live-Statistiken:
  • Recv
  • Send-Q's
  • Bestellungen abgelaufen (OOO)
  • Kein Windows (0-win)
  • Überträgt
# 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
Ein konstant erhöhter Recv-Q-Wert bedeutet, dass die Daten auf dem Empfangspuffer abgelegt wurden, die Anwendung jedoch recv() nicht aufgerufen hat, um sie vom Empfangspuffer in den Anwendungspuffer zu kopieren. Dies ist ein Hinweis darauf, dass die Anwendung überlastet oder anderweitig nicht in der Lage ist, eingehende Daten rechtzeitig zu verarbeiten. Sobald Daten in der Empfangswarteschlange eintreffen, sollten sie sofort verarbeitet werden. Wenn die Anwendung das nicht tut, wird ihr mehr Arbeit abverlangt, als sie bewältigen kann. 
Zusammenfassend lässt sich sagen, dass, wenn der Recv-Q-Wert für die Verbindung erhöht bleibt, während TCP-Zero-Window-Updatepakete für die Verbindung gesendet werden, eine Untersuchung auf Engpässe bei der empfangenden Anwendung, CPU, Festplatten usw. durchgeführt werden sollte.
Wenn der Recv-Q-Wert für die Verbindung bei Null bleibt, dann können die vom Node gesendeten TCP-Zero-Window-Updatepakete auch darauf hinweisen, dass das TCP-Empfangsfenster auf der Node-Seite der Verbindung für das Bandbreitenverzögerungsprodukt (BDP) der Verbindung zwischen dem Node und dem Remoteziel zu niedrig ist, und einige Node-TCP-Tunings müssen möglicherweise berücksichtigt werden.

Additional Information

Weitere Informationen finden Sie im Abschnitt "Latenz, Bandbreite und Durchsatz" des folgenden Handbuchs :

https://www.delltechnologies.com/asset/en-us/products/storage/industry-market/h16463-isilon-advanced-networking-fundamentals.pdf

Affected Products

PowerScale OneFS
Article 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.