En Windows, cada vez que quiero validar / confirmar que puede haber problemas relacionados con las E / S en un volumen en el que vive una base de datos u otra aplicación de baja latencia, verifico la latencia del disco.
Si veo el contador de transferencia / seg. De disco promedio de Windows > 18-20 ms de forma constante, mi canario en una mina de carbón acaba de morir y necesito investigar más. Drop-dead simple.
Estoy mirando Linux ahora, y no veo una métrica similar basada en la latencia. La rápida investigación que he hecho indica que quizás ni siquiera QUIERO ... Veo muchas referencias a E / S. Espere a que la mayoría de las personas rastree esto.
¿Existe una regla general que utilices con respecto a esto? Por ejemplo, ¿CUALQUIER I / o espera, veo mal para el volumen de una base de datos? ¿Existe un comando simple de iostat que me brinde una mejor visión del estado general del disco que simplemente mirar TOP?
¡Muchas gracias!
ioping
sar
salida aquí . Presta atención a la%iowait
columna.Respuestas:
Personalmente uso el comando
iostat -xk 10
y miro laawait
columna.Esta es una métrica prácticamente idéntica a la media de segundos de disco / transferencia de Windows y aparece en ms en lugar de segundos. Por lo tanto, se podrían aplicar reglas generales similares, aunque esto dependerá de todo tipo de cosas. Normalmente encuentro que los usuarios comienzan a quejarse a los 15 ms y 20 ms es muy malo.
Presione ctrl + c para salir, o especifique el número de iteraciones para ver con el parámetro de conteo. Tenga en cuenta que el resultado de la primera iteración está muy sesgado debido a la pequeña muestra de tiempo utilizada en la primera iteración.
De la
man iostat
páginaesperar El tiempo promedio (en milisegundos) para que las solicitudes de E / S emitidas al dispositivo sean atendidas. Esto incluye el tiempo dedicado por las solicitudes en cola y el tiempo dedicado a atenderlas.
Editar:
await
es la métrica principal que uso para mirar un disco bajo cargas de producción para ver si su rendimiento y iops pueden mantenerse al día con la demanda.La estadística% iowait trata más sobre el equilibrio entre el uso de la CPU y el disco. iostat% seguirá siendo menor de lo esperado, si tanto la CPU y la actividad del disco son altos. Por otro lado, comenzando con niveles de uso de disco bastante bajos,% iostat puede ser relativamente alto si la CPU está inactiva. Dicho esto en espera, también debe tomarse con un grano de sal. Si está ocurriendo una gran cantidad de lectura / escritura secuencial, sesgará la cifra a un valor inferior, y su regla general de 18 ~ 20 ms no será útil en estas condiciones porque la mayoría de los fragmentos que se escriben serán los datos secuenciales y serán atendidos por el disco muy rápidamente, mientras que el otro io aleatorio estará esperando, debido al sistema Native-Command-Command-Queuing (NCQ) integrado en el disco para optimizar el rendimiento al permitir que el disco elija la secuencia a la que se atienden las solicitudes.
fuente