Problemen oplossen met TCP zero window-updatepakketten die door een PowerScale knooppunt worden verzonden
Summary: In dit artikel wordt de reden voor nul venstertellers van de opdracht netstat beschreven. Ook wordt ingegaan op mogelijke aandachtspunten tijdens het onderzoeken en onderzoeken waarom deze waarden toenemen. ...
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
De output van de
Voorbeeld:
In de meeste gevallen geven TCP-updatepakketten met een nulvenster die door het knooppunt worden verzonden, aan dat de ontvangende toepassing (proces) op het knooppunt (NFS, SMB, enz.) traag is met het ophalen van data uit de ontvangstbuffer. Dit kan worden aangegeven door een consistente niet-nulwaarde die te zien is in de kolom Recv-Q voor de verbinding in de uitgang van de
Voorbeeld:
Samenvattend: als de Recv-Q-waarde voor de verbinding hoog blijft terwijl TCP zero window-updatepakketten voor de verbinding worden verzonden, moet een onderzoek naar knelpunten worden uitgevoerd bij de ontvangende applicatie, CPU, schijven, enz.
Als de Recv-Q-waarde voor de verbinding op nul blijft, kunnen TCP-updatepakketten voor het nulvenster die door het knooppunt worden verzonden, er ook op wijzen dat het TCP-ontvangstvenster aan de knooppuntzijde van de verbinding te laag is om mee te beginnen voor het bandbreedtevertragingsproduct (BDP) van de verbinding tussen het knooppunt en de externe bestemming, en moeten sommige TCP-afstemmingen van knooppunten mogelijk in overweging worden genomen.
'netstat -anT -p tcp'opdracht van een knooppunt toont een aantal TCP-vensterpakketten met nul (kolom 0-win). De waarden in de kolom 0-win geven het aantal keren aan dat het knooppunt van de TCP-verbinding (lokaal adres) naar het externe apparaat (buitenlands adres) een TCP-updatepakket voor het nulvenster heeft verzonden. Dit gebeurt wanneer het TCP-ontvangstvenster van het knooppunt is teruggebracht tot nul of tot een grootte die te laag is voor een gegevenssegment op volledige grootte.
Voorbeeld:
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 ...Het netto resultaat hiervan is dat het externe apparaat geen gegevens kan verzenden, waardoor vertragingen ontstaan die resulteren in verhoogde (schrijf)latentie, totdat het knooppunt een TCP-vensterupdate verzendt die aangeeft hoeveel gegevens het nu kan ontvangen.
In de meeste gevallen geven TCP-updatepakketten met een nulvenster die door het knooppunt worden verzonden, aan dat de ontvangende toepassing (proces) op het knooppunt (NFS, SMB, enz.) traag is met het ophalen van data uit de ontvangstbuffer. Dit kan worden aangegeven door een consistente niet-nulwaarde die te zien is in de kolom Recv-Q voor de verbinding in de uitgang van de
'netstat -an tcp'Opdracht. Bijvoorbeeld door de volgende opdracht meerdere keren uit te voeren om te zien of de Recv-Q constant vol is.
Voorbeeld:
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
... Dit is een teller in realtime, dus deze opdracht moet worden uitgevoerd terwijl TCP zero window-updatepakketten worden verzonden door het knooppunt voor de verbinding. Hieronder volgt een voorbeeldscript om live statistieken uit op te halen:
- Recv
- Send-Q's
- Out of Orders (OOO)
- Nul Windows (0-win)
- Zendt opnieuw uit
# 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 Een constant verhoogde Recv-Q betekent dat de gegevens op de ontvangstbuffer zijn gezet, maar dat de applicatie recv() niet heeft aangeroepen om deze van de ontvangstbuffer naar de toepassingsbuffer te kopiëren. Dit is een indicatie dat de applicatie overbelast is of anderszins niet in staat is om binnenkomende data tijdig te verwerken. Zodra gegevens in de ontvangstwachtrij binnenkomen, moeten deze onmiddellijk worden verwerkt, als de applicatie dat niet doet, wordt er meer werk van hem gevraagd dan hij aankan.
Samenvattend: als de Recv-Q-waarde voor de verbinding hoog blijft terwijl TCP zero window-updatepakketten voor de verbinding worden verzonden, moet een onderzoek naar knelpunten worden uitgevoerd bij de ontvangende applicatie, CPU, schijven, enz.
Als de Recv-Q-waarde voor de verbinding op nul blijft, kunnen TCP-updatepakketten voor het nulvenster die door het knooppunt worden verzonden, er ook op wijzen dat het TCP-ontvangstvenster aan de knooppuntzijde van de verbinding te laag is om mee te beginnen voor het bandbreedtevertragingsproduct (BDP) van de verbinding tussen het knooppunt en de externe bestemming, en moeten sommige TCP-afstemmingen van knooppunten mogelijk in overweging worden genomen.
Additional Information
Zie het gedeelte 'Latentie, bandbreedte en doorvoer' van de volgende handleiding voor meer informatie:
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.