Solucionar problemas de paquetes de actualización de ventana cero de TCP enviados por un nodo de PowerScale
摘要: 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. ...
本文适用于
本文不适用于
本文并非针对某种特定的产品。
本文并非包含所有产品版本。
说明
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.
其他信息
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
受影响的产品
PowerScale OneFS文章属性
文章编号: 000221738
文章类型: How To
上次修改时间: 19 4月 2024
版本: 2
从其他戴尔用户那里查找问题的答案
支持服务
检查您的设备是否在支持服务涵盖的范围内。