Problemen oplossen met TCP zero window-updatepakketten die door een PowerScale knooppunt worden verzonden
摘要: 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. ...
本文适用于
本文不适用于
本文并非针对某种特定的产品。
本文并非包含所有产品版本。
说明
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.
其他信息
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
受影响的产品
PowerScale OneFS文章属性
文章编号: 000221738
文章类型: How To
上次修改时间: 19 4月 2024
版本: 2
从其他戴尔用户那里查找问题的答案
支持服务
检查您的设备是否在支持服务涵盖的范围内。