Debe tener cuidado al evaluar estas cifras.
- IOWait está relacionado, pero no necesariamente linealmente correlacionado con la actividad del disco.
- La cantidad de CPU que tiene afecta su porcentaje.
- Un IOWait alto (dependiendo de su aplicación) no necesariamente indicar un problema para usted. Alternativamente, un pequeño IOWait puede traducirse en un problema para usted. Básicamente se reduce a qué tarea está esperando.
IOWait en este contexto es la medida del tiempo durante un período determinado que una CPU (o todas las CPU) estuvieron inactivas porque todas las tareas ejecutables estaban esperando que se completara una operación de E/S.
En su ejemplo, si tiene 20 CPU, con una tarea realmente martillando el disco, esta tarea está (en efecto) gastando el 100% de su tiempo en IOWait, posteriormente, la CPU en la que se ejecuta esta tarea gasta casi el 100% de su tiempo en Espera. Sin embargo, si otras 19 CPU están efectivamente inactivas y no utilizan este disco, informan un 0 % de IOEspera. Esto da como resultado un porcentaje promedio de IOWait del 5 %, cuando de hecho, si tuviera que observar la utilización de su disco, podría reportar un 100 %. Si la aplicación que espera en el disco es fundamental para usted, este 5 % es un poco engañoso porque la tarea en el cuello de botella probablemente experimente problemas de rendimiento mucho mayores que el 5 % lento.
¿Hay casi tantos procesos de CPU en espera como en funcionamiento? (=> malo)
Probablemente, recuerde que en su mayor parte las CPU ejecutan tareas y las tareas son las que solicitan IO. Si dos tareas separadas están ocupadas consultando el mismo disco en dos CPU separadas, ambas CPU estarán al 100 % de IOWait (y en el ejemplo de 20 CPU, a un 10 % de IOWait promedio general).
Básicamente, si tiene muchas tareas que solicitan IO, especialmente desde el mismo disco, además de que el disco se utiliza al 100 % (consulte iostat -mtx
) entonces esto es malo.
los procesos de trabajo están esperando el 5,0% de su plan de ejecución? (=> está bien en este caso)
No. Es casi seguro que los procesos de trabajo están esperando a tiempo completo por IO. Es solo el caso de informe promedio ("las otras CPU no están ocupadas") falsea el porcentaje o el hecho de que la CPU tiene muchas tareas para ejecutar, de las cuales muchas no necesitan hacer IO.
Como regla general, en un sistema de múltiples CPU, un porcentaje de IOEspera que es igual a la cantidad de CPU que ha dividido por 100 es probablemente algo para investigar.
otra cosa
Véase más arriba. Pero tenga en cuenta que las aplicaciones que realizan una escritura muy pesada están limitadas (deje de usar la escritura diferida, comience a escribir directamente en el disco). Esto hace que esas tareas produzcan un alto IOWait mientras que otras tareas en la misma CPU que escriben en el mismo disco no lo harían. Entonces existen excepciones.
También tenga en cuenta que si tiene 1 CPU dedicada a ejecutar 2 tareas, una es una gran lectura/escritura de E/S y la otra es un gran usuario de CPU, entonces la CPU informará un 50 % de IOEspera en este caso, si tiene 10 tareas como esta, sería un 10 % de IOWait (y una carga terrible), por lo que el número puede informarse mucho más bajo de lo que realmente podría ser un problema.
Creo que realmente necesitas echar un vistazo a iostat -mtx
para obtener algunas métricas de utilización del disco y pidstat -d
para obtener algunas métricas por proceso, luego considere si es probable que las aplicaciones que golpean esos discos de esa manera causen un problema, o si es probable que otras aplicaciones potenciales que golpean esos discos causen un problema.
Las métricas de la CPU realmente actúan como indicadores de los problemas subyacentes, son generales, así que comprenda dónde pueden estar también general es algo bueno.