Síntoma: Investigación de rendimiento lento de E/S

Una forma de investigar el rendimiento de CQ es comprobando request.log. Si la mayoría de las solicitudes tardan mucho tiempo, ¿cuál es la causa?  

Una de las posibles causas sería el rendimiento del disco, así como la aplicación general.  

Algunos factores bloquean el rendimiento del disco, como "io-wait", que es el porcentaje de tiempo que la CPU o las CPUs esperan al sistema de disco porque el sistema tiene una solicitud de E/S de disco excepcional. La información io-wait del registro sysstat tiende a provocar malentendidos. Sin embargo, si usted presta atención, no es difícil calcular el rendimiento del servidor

Podemos obtener io-wait por mpstat e iostat, en Linux. (Podemos obtener la información también en Windows, pero no es tan fácil de configurar para recoger la información.) El io-wait se calcula con el tiempo de espera justo para el dispositivo de almacenamiento durante el período. Asegúrese de no ver el valor io-warit en "all" de mpstat. Es un valor promedio. Deberíamos sumar los valores totales de io-wait de todas las CPUs.

Por ejemplo, durante el período de medición de 1,0 segundos en un sistema de disco al que solo se accede para CQ, si CPU0 espera a io-wait durante 0,1 segundos, CPU1 durante 0,2 segundos, CPU2 durante 0,3 segundos y CPU3 durante 0,4 segundos, el sistema con las 4 CPU espera durante ii-wait 1,0 segundos, totalmente al 100 %. Esto significa que el sistema está bloqueado para ejecutar cualquier proceso de lectura/escritura de datos desde/hacia el almacenamiento debido a io-wait. Mientras tanto, el valor medio se muestra como 25%. Parece que hay suficientes recursos. Pero no use el valor porque el sistema entero no espera por io-wait 0.25 seg. Si el proceso CQ/AEM está bloqueado por un bajo rendimiento del disco, el valor medio máximo (que se muestra en la columna'%iowait' en la CPU 'all' de mpstat) es de aproximadamente el 100% en una CPU, el 50% en dos CPUs, el 25% en cuatro CPUs y el 12,5% en ocho CPUs. El valor se ve más pequeño si el sistema tiene más CPUs. Pero de hecho, el io-wait total es del 100% sin importar cuántas CPUs tenga el sistema.

---------------
# mpstat -P ALL 5
...
08:50:50 CPU %user %nice %sys %iowait %irq %soft %steal %idle intr/s
08:50:55 all 3.26 0.00 4.86 24.04 0.98 3.05 0.00 63.81 2219.00
08:50:55 0 0.84 0.00 1.88 14.41 0.00 0.00 0.00 82.88 1011.27
08:50:55 1 0.21 0.00 1.45 17.63 3.53 0.00 0.00 77.18 759.08
08:50:55 2 9.55 0.00 14.84 56.91 0.41 11.99 0.00 6.30 445.93
08:50:55 3 2.08 0.00 1.04 6.25 0.00 0.00 0.00 90.62 2.71

...
No confíe en "24.04" en la columna "%iowait" en la línea "all" de la CPU! Suma todos los valores de %iowait de cada CPU, 14.41 + 17.63 + 56.91 + 6.25.
(Si usas "24.04", multiplica 24.04 por 4.)
---------------

Si el sistema utiliza varios dispositivos de almacenamiento para otra aplicación, el valor total de io-wait superaría el 100%. En ese momento, revise el iostat para verificar cómo se come cada partición/almacenamiento.

Cuestiones a tener en cuenta

En general, si se supera el 10%, considere que la falta de proceso de E/S causaría una respuesta tardía. Cuanto menos io-wait, mejor es el rendimiento. Para reducir io-wait a menos que algunos procesos específicos causen mucha io-wait, compruebe la configuración de almacenamiento en disco existente y considere la posibilidad de cambiar el almacenamiento en disco, como disco de alto rendimiento, configuración RAID o SSD.

Esta obra está autorizada con arreglo a la licencia de Reconocimiento-NoComercial-CompartirIgual 3.0 Unported de Creative Commons.  Los términos de Creative Commons no cubren las publicaciones en Twitter™ y Facebook.

Avisos legales   |   Política de privacidad en línea