GNU/Linux >> Tutoriales Linux >  >> Linux

wa (esperando E/S) desde el comando superior es grande

Solución 1:

Aquí hay algunas herramientas para encontrar la actividad del disco:

  • iotop
  • vmstat 1
  • iostat 1
  • lsof
  • strace -e trace=open <application>
  • strace -e trace=open -p <pid>

En ps auxf también verá qué procesos están en suspensión de disco no interpretable (D ) porque están esperando E/S.

Algunos días la carga aumenta hasta llegar a 40 sin aumentar el número de visitantes.

También es posible que desee crear una copia de seguridad y ver si el disco duro está fallando lentamente. Un disco duro generalmente comienza a ralentizarse antes de que fallezca. Esto también podría explicar la alta carga.

Solución 2:

El resultado de la parte superior sugiere que el DBMS está experimentando la mayoría de las esperas de E/S, por lo que los problemas de ajuste de la base de datos son un candidato obvio para investigar.

La espera de E/S en un servidor de base de datos, particularmente en picos de carga, es una pista de que su DBMS podría estar vinculado al disco (es decir, necesita un subsistema de disco más rápido) o podría tener un problema de ajuste. Probablemente también debería considerar la creación de perfiles de su servidor de base de datos, es decir, obtener un seguimiento de lo que está haciendo y qué consultas están tomando el tiempo.

Algunos puntos de partida para diagnosticar problemas de ajuste de la base de datos:-

  • Encuentre las consultas que requieren más tiempo y observe los planes de consulta. Vea si alguno tiene planes de consulta extraños, como un escaneo de tabla donde no debería estar. Tal vez la base de datos necesite agregar un índice.

  • Los largos tiempos de espera de los recursos pueden significar que es necesario expandir algún grupo de recursos clave.

  • Los largos tiempos de espera de E/S pueden significar que necesita un subsistema de disco más rápido.

  • ¿Están sus volúmenes de registro y datos en unidades separadas? Los registros de la base de datos tienen muchas escrituras secuenciales pequeñas (esencialmente, se comportan como un búfer circular). Si tiene una carga de trabajo de acceso aleatorio ocupada que comparte los mismos discos que sus registros, esto afectará de manera desproporcionada el rendimiento del registro. Para que una transacción de la base de datos se confirme, las entradas del registro deben escribirse en el disco, por lo que esto creará un cuello de botella en todo el sistema.

    Tenga en cuenta que algunos motores de almacenamiento de MySQL no usan registros, por lo que esto puede no ser un problema en su caso.

Nota al pie:Sistemas de colas

Los sistemas de colas (un modelo estadístico para el rendimiento) se vuelven hiperbólicamente más lentos a medida que el sistema se acerca a la saturación. Para una aproximación de alto nivel, un sistema que está saturado al 50 % tiene una longitud de cola promedio de 2. Un sistema que está saturado al 90 % tiene una longitud de cola de 10, un sistema que está saturado al 99 % tiene una longitud de cola de 100.

Por lo tanto, en un sistema que está cerca de la saturación, los pequeños cambios en la carga pueden generar grandes cambios en los tiempos de espera, que en este caso se manifiestan como tiempo de espera en E/S. Si la capacidad de E/S de su subsistema de disco está casi saturada, pequeños cambios en la carga pueden generar cambios significativos en los tiempos de respuesta.

Solución 3:

Ejecutar iotop o atop -dD , para ver qué procesos están haciendo io. Utilice strace si necesita una mirada más cercana.


Linux
  1. Informes de E/S desde la línea de comandos de Linux

  2. N ¿Equivalente a Top pero para E/S de red?

  3. Migrar a un servidor de uso general o de E/S

  4. Los mejores comandos básicos de Linux para principiantes

  5. Linux - ¿Cómo puedo ver lo que está esperando el disco IO?

10 Comando iostat de Linux para informar estadísticas de CPU y E/S

Los 30 mejores ejemplos de comandos para monitorear en Linux

Los 20 mejores comandos de terminal de Linux para probar un principiante

El tutorial de Top Command con ejemplos para principiantes

Cómo hacer una copia de seguridad de una sola base de datos MySQL desde la línea de comandos

10 ejemplos de iozone para la medición del rendimiento de E/S de disco en Linux