Verifique el estado y la disponibilidad de sus servidores Linux para obtener un rendimiento óptimo con la herramienta de monitoreo de Linux de Site24x7.
El tiempo de espera de E/S es una métrica utilizada para medir la cantidad de tiempo que la CPU espera a que se completen las operaciones de E/S del disco. Un tiempo de espera de E/S alto indica que la CPU está inactiva y hay solicitudes de E/S pendientes. Si bien esto no hará que un sistema deje de funcionar, limitará el rendimiento de la CPU.
El tiempo de espera de E/S de la CPU significa que, si bien ningún proceso estaba en un estado ejecutable, al menos una operación de E/S estaba en curso. En términos simples, el tiempo de espera de E/S es el tiempo que tarda la CPU esperando que finalice la E/S.
El tiempo de espera de E/S simplemente indica el estado de la CPU o los núcleos de la CPU. Una espera de E/S alta significa que la CPU tiene solicitudes pendientes. Sin embargo, una investigación adicional es necesaria para confirmar el origen y el efecto.
Estas son algunas de las posibles causas de un tiempo de espera de E/S alto:
Una espera de E/S alta obliga al servidor a manejar un ancho de banda superior para realizar otros cálculos mientras espera solicitudes de E/S. La espera de E/S es una métrica común para analizar el rendimiento del sistema. Cuando se produce una espera de E/S alta con frecuencia, puede afectar negativamente el rendimiento del sistema al ralentizarlo o causar problemas. Estos pueden incluir una baja velocidad de transferencia en la base de datos y una degradación del estado de salud en aplicaciones y bases de datos.
Los dos comandos más utilizados para identificar y solucionar problemas de tiempo de espera de E/S en Linux son top
y vmstat
. Estos comandos mostrarán varias estadísticas de nivel de CPU, incluido el tiempo de espera de E/S.
top
El comando top
es el comando más fácil y utilizado para identificar el tiempo de espera de E/S en Linux. Muestra una vista dinámica y en tiempo real del sistema, estadísticas a nivel de CPU y una lista en ejecución de los procesos gestionados por el núcleo.
Sintaxis:
top [options]
Ejemplo:
Al ejecutar el comando top
se mostrará una salida similar a la que se muestra a continuación:
top
Nos centraremos en la línea %Cpu(s)
. Entre otras estadísticas importantes, muestra el tiempo de espera de E/S. El tiempo de espera de E/S se indica mediante la etiqueta wa en la línea %Cpu(s)
.
wa
indica el porcentaje de tiempo que la CPU estaba esperando a que se completara la E/S. Si estás en un sistema con procesador de varios núcleos, puedes pulsar 1 mientras se ejecuta el comando top
para obtener detalles sobre el uso de CPU por CPU.
vmstat
El comando vmstat
es otra herramienta de monitoreo del rendimiento proporcionada por Linux. Suministra información sobre la memoria, los procesos, la CPU y más. Por defecto, vmstat
muestra las estadísticas desde el último reinicio del sistema. También puede mostrar estadísticas en tiempo real que se actualizan después de un intervalo especificado.
Sintaxis:
vmstat [options][delay [count]]
Estos son los dos parámetros que se utilizan comúnmente con el comando vmstat:
Ejemplo:
Al ejecutar el comando vmstat
, obtendrás una salida similar a la que se muestra a continuación:
vmstat
La salida se divide en cuatro secciones. Nos centraremos en la sección CPU. Las columnas de esta sección son similares a la línea %Cpu(s) del comando top. Junto con el tiempo de espera de E/S (wa), también obtenemos información adicional a través del comando vmstat. Esta incluye la memoria libre total y el número de bloques intercambiados hacia y desde E/S. Por ejemplo, tener menos memoria libre puede aumentar el tiempo de espera de E/S.
Una vez hayas confirmado que estás lidiando con un tiempo de espera de E/S elevado, el siguiente paso debe ser encontrar los procesos responsables de estas operaciones de E/S. Uno de los comandos más fáciles y más utilizados para esto es iotop.
iotop
El comando iotop
es idéntico al comando top en el sentido de que se utiliza para monitorear el uso de E/S del disco junto con la lista de procesos en ejecución o hilos responsables. Está basado en Python y requiere acceso al kernel para monitorear los procesos que realizan E/S.
Sintaxis:
iotop [options]
Ejemplo:
Al ejecutar el comando iotop
, obtendrás una salida similar a la que se muestra a continuación:
iotop
La primera línea contiene el ancho de banda total de lectura y escritura del disco. La siguiente línea muestra el ancho de banda real de las operaciones de lectura y escritura realizadas por los procesos o hilos que actualmente realizan E/S. La siguiente sección muestra la lista de procesos en ejecución con datos sobre su uso actual de E/S del disco. La columna más importante aquí es la columna de E/S, que muestra el porcentaje de tiempo que el proceso estuvo realizando E/S con respecto a su tiempo total de procesamiento. Esta lista concreta de procesos está ordenada en orden inverso.
Una de las opciones más utilizadas con este comando es -o u -only. Al ejecutarlo junto con el comando (iotop -o)
, se reducen los resultados a una lista en ejecución de los procesos que realmente están haciendo E/S.
Los comandos top
y vmstat
nos informan sobre el tiempo de espera de E/S. El comando iotop
nos ayuda a identificar los procesos que realizan operaciones de E/S. Otro factor importante a tener en cuenta es qué discos se están utilizando en estas operaciones. El comando iostat
proporciona esta información.
iostat
El comando iostat
muestra las estadísticas de entrada/salida del sistema. Genera informes a nivel de dispositivo al monitorear el período de tiempo activo en relación con las tasas de transferencia medias. Al igual que los comandos top
y vmstat
, iostat
también muestra las estadísticas de la CPU.
Sintaxis:
iostat [option] [interval] [count]
Los parámetros de intervalo y recuento aquí son similares a los del comando vmstat. Se utilizan para mostrar actualizaciones en tiempo real de forma infinita o solo para recuentos específicos.
Ejemplo:
Al ejecutar el comando iostat
, obtendrás una salida similar a la que se muestra a continuación:
iostat
La primera línea muestra las estadísticas medias de CPU, incluido el tiempo de espera de E/S. Representa el mismo valor que wa
en los comandos top
y vmstat
. Las posteriores secciones proporcionan los siguientes datos para todos los dispositivos y particiones:
Después de identificar los procesos que aumentan el tiempo de espera de E/S y los discos involucrados, hay varias correcciones que podemos aplicar. Estos son algunos de los métodos más comunes para minimizar el tiempo de espera de E/S elevado:
Write for Site24x7 is a special writing program that supports writers who create content for Site24x7 “Learn” portal. Get paid for your writing.
Apply Now