Problemas de rendimiento de escritura de PowerFlex
Summary: Después de realizar el mantenimiento de red, el rendimiento de escritura de algunos SDS ahora es deficiente.
Symptoms
Escenario
- Este problema se observa después de que se realizó el mantenimiento de red en los switches de la parte superior del rack (TOR), por lo general, un reinicio de los switches.
- Los nodos de SDS utilizan una vinculación LACP para las redes de datos.
- Solo se ven afectados los nodos SDS que utilizan los switches en los que se realizó el mantenimiento.
- El rendimiento de escritura puede ser de hasta cientos de milisegundos para un determinado pool de almacenamiento/PD.
- El rendimiento de lectura del mismo conjunto de SDS es normal.
- El "NET_LONG_RCV_GRP_PROCESS" en el diag_counters.txt muestra que los valores suben rápidamente, mientras que el último tiempo incrementado se mantiene bajo.
Ejemplo:
Comp :: Counter :: Value :: ExtData :: Last Counted(Ms) NET :: NET_LONG_RCV_GRP_PROCESS :: 3756453 :: 0xffffffff :: 3120 NET :: NET_LONG_RCV_GRP_PROCESS :: 3825395 :: 0xffffffff :: 960 NET :: NET_LONG_RCV_GRP_PROCESS :: 3705906 :: 0xffffffff :: 1320 NET :: NET_LONG_RCV_GRP_PROCESS :: 4094919 :: 0xffffffff :: 1230 NET :: NET_LONG_RCV_GRP_PROCESS :: 3954725 :: 0xffffffff :: 1390 NET :: NET_LONG_RCV_GRP_PROCESS :: 3594178 :: 0xffffffff :: 420 NET :: NET_LONG_RCV_GRP_PROCESS :: 3702403 :: 0xffffffff :: 680 NET :: NET_LONG_RCV_GRP_PROCESS :: 3830299 :: 0xffffffff :: 510 NET :: NET_LONG_RCV_GRP_PROCESS :: 3491713 :: 0xffffffff :: 330 NET :: NET_LONG_RCV_GRP_PROCESS :: 4155343 :: 0xffffffff :: 690
En este ejemplo, el valor de la tercera columna es alto (y aumenta si se mira en directo). La quinta columna muestra la última vez que se detectó, que es menos de un segundo para una buena parte de los SDS.
En un sistema PowerFlex en buen estado, la tercera columna no contará hacia arriba y la quinta columna contará hacia arriba, ya que la última vez que se encontró aumenta con el tiempo.
Para ver los contadores en vivo, se pueden ejecutar los siguientes comandos:
#Set la variable para los SDS en el dominio de protección afectado. Ingrese el nombre correcto del PD aquí.
pd=<PD_NAME>
#Set la variable para la cantidad de SDS en el dominio de protección. Ejecute esto tal cual.
num=`scli --query_protection_domain --protection_domain_name $pd |grep Protection |awk '{print $16}'`
#login para permitir que funcione el último comando.
scli --login --username admin
#Watch el contador correcto desde el comando "query_diag_counters" para cada SDS.
watch -d -n 1 "for x in \$(scli --query_all_sds | grep -A $num $pd | grep ID | awk '{print \$5}'); do echo \$x; scli --query_diag_counters | grep -A30 \$x | grep -Em1 '\$x|NET_LONG_RCV_GRP_PROCESS'; done"
En un sistema sano, espere que la quinta columna cuente regularmente a medida que pasa el tiempo y que la tercera columna sea estática. Si el tiempo de la quinta columna se mantiene bajo y la tercera columna está contando hacia arriba, esto es un síntoma del problema.
Impacto
El rendimiento de escritura es deficiente para los clientes.
Cause
El "NET_LONG_RCV_GRP_PROCESS" que se rastrea anteriormente indica que el envío de datos TCP a un SDS remoto tardó más de 1 s en completarse.
Este retraso puede ocurrir debido a una pequeña ventana de congestión TCP inicial después del mantenimiento de la red y a que el parámetro de paquetes OOO (fuera de servicio) no está configurado adecuadamente en el sistema operativo. Esto hace que los conectores de SDS a SDS no puedan comunicarse de manera eficaz, lo que provoca múltiples retransmisiones de TCP y un tamaño de segmento reducido. Esto crea una mayor latencia en las escrituras, ya que esto solo afectará a los conectores de SDS a SDS.
La latencia de lectura no se ve afectada, ya que los SDC (clientes) se comunican con un solo SDS por solicitud de IO de lectura y no dependen de la comunicación TCP de SDS a SDS.
Resolution
Como solución alternativa inmediata, reinicie el servicio SDS en cada nodo afectado. Utilice el modo de mantenimiento cuando reinicie el proceso de SDS. Un "pkill sds" es suficiente una vez que el nodo está en mantenimiento.
Para evitar que el problema se produzca en el futuro, realice lo siguiente:
- Aplique la configuración de sysctl que se describe en este artículo de la base de conocimientos pública:
Es posible que los nodos del servidor de datos de almacenamiento no contengan los parámetros de ajuste del sistema correctos, lo que puede provocar problemas de rendimiento
- Si utiliza RHEL/CentOS 7, actualice la versión del kernel del SO en los nodos SDS a "3.10.0-1160.66.1" o posterior
Versión afectada
PowerFlex 3.x
Problema corregido en la versión
RCM versión 3.6.3.2 o posterior
ICM versión 38.363.02 o posterior