Saltar al contenido

Evaluación de la espera de E / S de la CPU en Linux

Solución:

Debe tener cuidado al evaluar estas cifras.

  1. IOWait está relacionado, pero no necesariamente correlacionado linealmente con la actividad del disco.
  2. La cantidad de CPU que tiene afecta su porcentaje.
  3. Un IOWait alto (según su aplicación) no necesariamente indicarle un problema. 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 de tiempo durante un período dado que una CPU (o todos los CPUS) permanecieron inactivos 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 que realmente golpea 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 pasa casi el 100% de su tiempo en IOWait. Sin embargo, si otras 19 CPU están efectivamente inactivas y no utilizan este disco, informan 0% IOWait. Esto da como resultado un porcentaje IOWait promedio del 5%, cuando de hecho, si echa un vistazo a la utilización de su disco, esto podría informar del 100%. Si la aplicación que espera en el disco es fundamental para usted, este 5% es algo engañoso porque la tarea en el cuello de botella probablemente presenta problemas de rendimiento mucho más altos que el 5% más lento.

¿Hay casi tantos procesos de CPU en espera que 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, esto pondrá ambas CPU al 100% IOWait (y en el ejemplo de 20 CPU un 10% promedio general IOWait).

Básicamente, si tiene muchas tareas que solicitan E / S, especialmente desde el mismo disco, además de que ese 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? (=> ok en este caso)

No. Es casi seguro que los procesos de trabajo estén esperando a IO a tiempo completo. Es solo el caso de informe promedio (“las otras CPU no están ocupadas”) modifica el porcentaje o el hecho de que la CPU tiene muchas tareas para ejecutar, de las cuales muchas no necesitan hacer E / S.

Como regla general, en un sistema con varias CPU, un porcentaje de IOWait que es igual a la cantidad de CPU que ha dividido por 100 es probablemente algo para investigar.

algo más

Véase más arriba. Pero tenga en cuenta que las aplicaciones que realizan una escritura muy pesada se ralentizan (deje de usar la escritura diferida, comience a escribir directamente en el disco). Esto hace que esas tareas produzcan un IOWait alto, 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 lectura / escritura de E / S pesado y la otra es un gran usuario de CPU, entonces la CPU reportará 50% IOWait en este caso, si tiene 10 tareas como esta sería 10% IOWait (y una carga terrible), por lo que el número puede ser mucho más bajo de lo que realmente podría ser un problema.

Creo que realmente necesitas echarle un vistazo iostat -mtx para obtener algunas métricas de utilización del disco y pidstat -d para obtener algunas métricas por proceso, 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 CPU realmente actúan como indicadores de problemas subyacentes, son generales, por lo que comprenden dónde pueden estar también general es algo bueno.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *