Después de leer el artículo de Daniel, no tendré miedo de la respuesta lenta del servidor.

Recientemente, la respuesta del servidor es muy lenta y los programas de aplicación en el servidor de visualización a menudo se agotan, etc., y a veces la situación se atasca. Después de descubrir que la presión de E / S del servidor es muy alta, la presión del disco duro El acceso a E / S ha alcanzado el 100%.
  
La última razón es que el código comercial en línea se escribió al mismo tiempo, lo que provocó que la E / S del disco duro del servidor explotara. Lo registraré aquí para su conveniencia y para usted en el futuro para resolver estos problemas tan pronto como posible.
  
Utilice el comando superior para ver la información del estado del sistema de visualización en tiempo real:

Estado de la CPU (CPU): índice de ocupación del proceso del usuario, índice de ocupación del proceso del sistema, índice de ocupación del proceso de prioridad agradable del usuario y índice de recursos de la CPU inactiva, etc .;

Estado de la memoria (Mem): memoria total, cantidad utilizada, cantidad libre, etc .;

Estado de la partición de intercambio (Swap): partición de intercambio total, uso, volumen inactivo, etc .;

La descripción de los parámetros en el estado de la CPU:

us: Relación de tiempo de CPU utilizado en modo de usuario

sy: tiempo de CPU usado en modo sistema

ni: Relación de tiempo de CPU en modo de usuario utilizada como buena asignación de proceso ponderada

id: relación de tiempo de CPU inactivo

wa: la CPU espera el tiempo de finalización de la escritura en el disco

hola: tiempo de interrupción difícil

si: tiempo de consumo de interrupción suave

st: la máquina virtual roba tiempo

Se puede observar que el wa (71,1%) del servidor es extremadamente alto y el porcentaje de tiempo de CPU ocupado por IO en espera es superior al 30%, lo que indica que hay un problema con el IO del disco.

Usamos iostat y otros comandos para continuar con el análisis detallado. Si no hay iostat en el servidor, instálelo de la siguiente manera:

[root@Mike-VM-Node-172_31_225_214 ~]# yum install sysstat
[root@Mike-VM-Node-172_31_225_214 ~]# iostat 
Linux 3.10.0-514.26.2.el7.x86_64 (Mike-VM-Node172_31_225_214.com)     11/03/2020     _x86_64_    (1 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.14    0.00    0.04    0.01    0.00   99.81

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
vda               0.44         1.38         4.59    1786837    5940236

[root@Mike-VM-Node-172_31_225_214 ~]#

Descripción de parámetros:

% usuario: el porcentaje de tiempo que la CPU está en modo usuario

% agradable: el porcentaje de tiempo que la CPU está en modo de usuario con un valor NICE

% system: el porcentaje de tiempo que la CPU está en modo sistema

% iowait: el porcentaje de tiempo que la CPU espera que la entrada y la salida se completen

% de robo: el porcentaje de tiempo de espera inconsciente de la CPU virtual cuando el hipervisor mantiene otro procesador virtual

% inactivo: porcentaje de tiempo inactivo de la CPU

tps: El número de transmisiones por segundo del dispositivo, "una transmisión" significa "una solicitud de E / S". Se pueden combinar varias solicitudes lógicas en "una solicitud de E / S". Se desconoce el tamaño de la solicitud de "una transferencia"

kB_read / s: la cantidad de datos leídos desde el dispositivo por segundo

kB_wrtn / s: la cantidad de datos escritos en el dispositivo por segundo

kB_read: la cantidad total de datos leídos

kB_wrtn: la cantidad total de datos escritos; estas unidades son kilobytes

Utilice el comando iostat -x 1 10 para verificar el estado de IO.

[root@Mike-VM-Node-172_31_225_214 ~]# iostat -x 1 10
Linux 3.10.0-514.26.2.el7.x86_64 (Mike-VM-Node172_31_225_214.com)     11/03/2020     _x86_64_    (1 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.13    0.00    0.04    97.01    0.00   99.82

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
vda               0.00     0.10    0.06    0.33     1.07     4.42    28.07     0.00   10.94   22.13    8.83   0.35   0.01

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.00    0.00    4.00   95.00    0.00    0.00

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
vda               0.00     0.00    0.00 2140.00     0.00  8560.00     8.00    19.87    9.29    0.00    9.29   0.47 100.00

Puede ver% util 100.00% inactivo 99.82.

El valor de% util ha aumentado y la utilización del disco es cada vez mayor, lo que indica que las operaciones de io son cada vez más frecuentes y el uso de los recursos del disco está aumentando, lo que es consistente con el aumento de los subprocesos para io operaciones.

Si% util ya está al 100%, significa que se generan demasiadas solicitudes de E / S, el sistema de E / S está completamente cargado y el disco puede tener un cuello de botella.

El ralentí es superior al 99%. La presión de IO ha alcanzado un límite. Generalmente, la velocidad de lectura tiene más espera.

Descripción de parámetros:

rrqm / s: el número de operaciones de lectura de combinación por segundo. Es decir, rmerge / s

wrqm / s: el número de operaciones de combinación de escritura por segundo. Es decir, wmerge / s

r / s: el número de dispositivos de E / S leídos completados por segundo. Es decir, río / s

w / s: el número de dispositivos de E / S de escritura completados por segundo. Es decir, wio / s

rkB / s: el número de K bytes leídos por segundo. Es la mitad de rsect / s porque cada sector tiene un tamaño de 512 bytes

wkB / s: el número de K bytes escritos por segundo. Es la mitad de wsect / s

avgrq-sz: tamaño de datos promedio (sector) de cada operación de E / S de dispositivo

avgqu-sz: longitud promedio de la cola de E / S

rsec / s: el número de sectores leídos por segundo. Es decir, rsect / s

wsec / s: el número de sectores escritos por segundo. Es decir, wsect / s

r_await: el tiempo promedio requerido para cada operación de lectura, incluido no solo el tiempo de la operación de lectura del dispositivo del disco duro, sino también el tiempo de espera en la cola del kernel

w_await: el tiempo promedio requerido para cada operación de escritura, incluido no solo el tiempo de las operaciones de escritura del dispositivo de disco duro, sino también el tiempo de espera en la cola del kernel

await: tiempo de espera promedio (milisegundos) para cada operación de E / S de dispositivo

svctm: tiempo de servicio promedio por operación de E / S del dispositivo (milisegundos)

% util: qué porcentaje de un segundo se usa para operaciones de E / S, es decir, el porcentaje de cpu consumido por io

Si desea realizar una prueba de esfuerzo de carga de E / S en el disco duro, puede usar el comando fio.Si no hay fio en el servidor, instálelo de la siguiente manera:

[root@Mike-VM-Node-172_31_225_214 ~]# yum install -y fio

El siguiente comando generará 30 archivos 1G en el directorio especificado, que se ejecutan simultáneamente por varios subprocesos:

[root@Mike-VM-Node-172_31_225_214 /tmp]# fio -directory=/tmp/ -name=readtest -direct=1-iodepth1-thread -rw=write -ioengine=psync -bs=4k -size=1G -numjobs=30-runtime=3-group_reporting

numjobs = 30 significa 30 trabajos simultáneos.

-rw = lectura, prueba única, lectura y escritura, prueba única, escritura rw, lectura y escritura al mismo tiempo, lectura y escritura aleatoria aleatoria, lectura aleatoria, prueba única, lectura aleatoria, escritura aleatoria, prueba única, escritura aleatoria.

-runtime = La unidad es segundos, lo que significa la duración total de la prueba.

Si tu

① Participar en pruebas funcionales y desea avanzar en las pruebas automatizadas

②He estado en la industria de las pruebas durante uno o dos años, pero todavía no puedo escribir el código

③ Las entrevistas con las grandes empresas chocan repetidamente contra la pared

¡Te invito a unirte al grupo! Vamos ~~ Tester, 313782132 (Hay expertos técnicos en el grupo Q para comunicarse y compartir, el valor de los recursos de aprendizaje depende de sus acciones, no sea un "coleccionista") Obtenga más tecnología y materiales para entrevistas

Supongo que te gusta

Origin blog.csdn.net/weixin_50829653/article/details/111598436
Recomendado
Clasificación