Solucionar problemas de paquetes de actualización de ventana cero de TCP enviados por un nodo de PowerScale
Summary: En este artículo, se analiza el motivo por el cual los contadores de ventana cero provienen del comando netstat. También se discuten posibles puntos de interés mientras se investiga e investiga por qué estos valores están aumentando. ...
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
La salida del comando
Ejemplo:
En la mayoría de los casos, los paquetes de actualización de ventana cero de TCP enviados por el nodo indican que la aplicación (proceso) receptora en el nodo (NFS, SMB, etc.) tarda en extraer datos del búfer de recepción. Esto se puede indicar mediante un valor coherente distinto de cero que se ve en la columna Recv-Q para la conexión en la salida de la
Ejemplo:
En resumen, si el valor de Recv-Q permanece elevado para la conexión mientras se envían paquetes de actualización de ventana cero TCP para la conexión, se debe realizar una investigación sobre los cuellos de botella en la aplicación receptora, la CPU, los discos, etc.
Si el valor de Recv-Q permanece en cero para la conexión, los paquetes de actualización de la ventana cero de TCP enviados por el nodo también pueden indicar que la ventana de recepción de TCP en el lado del nodo de la conexión es demasiado baja para empezar para el producto de retardo de ancho de banda (BDP) de la conexión entre el nodo y el destino remoto, y es posible que se deban considerar algunos ajustes de TCP del nodo.
'netstat -anT -p tcp'de un nodo muestra un conteo de paquetes de ventana cero TCP (columna 0-win). Los valores de la columna 0-win indican la cantidad de veces que el nodo de la conexión TCP (dirección local) al dispositivo remoto (dirección externa) envió un paquete de actualización de ventana cero TCP. Esto ocurre cuando la ventana de recepción TCP del nodo se redujo a cero o a un tamaño demasiado bajo para ajustarse a un segmento de datos de tamaño completo.
Ejemplo:
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 ...El resultado neto de esto es que el dispositivo remoto no podrá transmitir datos, lo que presenta retrasos que dan como resultado una latencia elevada (escritura), hasta que el nodo envía una actualización de la ventana TCP que indica cuántos datos puede recibir ahora.
En la mayoría de los casos, los paquetes de actualización de ventana cero de TCP enviados por el nodo indican que la aplicación (proceso) receptora en el nodo (NFS, SMB, etc.) tarda en extraer datos del búfer de recepción. Esto se puede indicar mediante un valor coherente distinto de cero que se ve en la columna Recv-Q para la conexión en la salida de la
'netstat -an tcp'comando. Por ejemplo, ejecutar el siguiente comando varias veces para ver si Recv-Q está constantemente lleno.
Ejemplo:
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
... Este es un contador en tiempo real, por lo que este comando deberá ejecutarse mientras el nodo envía paquetes de actualización de ventana cero TCP para la conexión. El siguiente es un script de ejemplo para recuperar estadísticas en vivo:
- Recv
- Preguntas de envío
- Finalización de pedidos (OOO)
- Cero Windows (0-ganar)
- Retransmite
# 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 Un Recv-Q constantemente elevado significa que los datos se han colocado en el búfer de recepción, pero la aplicación no ha llamado a recv() para copiarlos del búfer de recepción al búfer de aplicación. Esto indica que la aplicación está sobrecargada o, de otro modo, no puede procesar oportunamente los datos entrantes. Tan pronto como los datos llegan a la cola de recepción, se deben procesar de inmediato; si la aplicación no lo hace, se le pide que realice más trabajo del que puede manejar.
En resumen, si el valor de Recv-Q permanece elevado para la conexión mientras se envían paquetes de actualización de ventana cero TCP para la conexión, se debe realizar una investigación sobre los cuellos de botella en la aplicación receptora, la CPU, los discos, etc.
Si el valor de Recv-Q permanece en cero para la conexión, los paquetes de actualización de la ventana cero de TCP enviados por el nodo también pueden indicar que la ventana de recepción de TCP en el lado del nodo de la conexión es demasiado baja para empezar para el producto de retardo de ancho de banda (BDP) de la conexión entre el nodo y el destino remoto, y es posible que se deban considerar algunos ajustes de TCP del nodo.
Additional Information
Consulte la sección "Latencia, ancho de banda y rendimiento" de la siguiente guía para obtener más información 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.