Los servidores en el entorno de producción son lentos, ¿hablan de ideas de diagnóstico y evaluación del rendimiento?

1. Hay un problema con el programa de simulación, el código es el siguiente:

import java.util.UUID;

public class MangoDemo {
    public static void main(String[] args) {
        while (true){
            System.out.println(UUID.randomUUID());
        }
    }
}

Coloque el archivo MangoDemo.java en el servidor Linux y ejecútelo. El efecto es como se muestra en la siguiente figura:
Inserte la descripción de la imagen aquí
2. Ideas de diagnóstico:
1. Use el comando superior para consultar la ocupación de recursos de todo el servidor , principalmente vea la CPU y la ocupación de memoria en la Figura 2 a continuación, y la siguiente Figura 1 Equilibrio de carga del sistema. Carga promedio: Los últimos tres números representan el valor de carga promedio del sistema en 1 minuto, 5 minutos y 15 minutos. Sume los tres valores y divida por 3 y multiplique por 100%. Si es mayor que 60%, la carga del sistema es grave.
Inserte la descripción de la imagen aquí
Si desea consultar el promedio de carga, también puede usar el comando uptime.
Inserte la descripción de la imagen aquí
2. Utilice el comando vmstat para ver la CPU: vmstat -n 2 3 (significa muestrear una vez cada 2 segundos, un total de tres muestras).
! [Inserte la descripción de la imagen aquí] (https://img-blog.csdnimg.cn/20210223234157322.p
Depende principalmente de r, b, us, sy, id. Estos pocos parámetros.

  • procs
    r: El número de procesos en ejecución y esperando el intervalo de tiempo de la CPU. En principio, la cola de ejecución de una CPU con 1 núcleo no debe exceder de 2, y la cola de ejecución de todo el sistema no debe exceder el doble del número total de núcleos , de lo contrario, la presión del sistema es demasiado alta.
    b: El número de procesos en espera de recursos, como en espera de E / S de disco, E / S de red, etc.
  • cpu
    us: El porcentaje de tiempo de CPU consumido por el proceso de usuario. Cuanto mayor sea el valor de us, más tiempo de CPU consume el proceso de usuario. Si es superior al 50%, optimizar el programa.
    sy: El porcentaje de tiempo de CPU consumido por el proceso del kernel.
    id: el porcentaje de la CPU que está inactivo.
    us + sy + id = 100%; Si us + sy es mayor que 40%, es decir, id es menor que 60%, puede ser CPU insuficiente.

2.1 Ver toda la información del núcleo de la CPU: mpstat -P ALL 2
usr es igual a nosotros en la figura anterior; sys es igual a sy en la figura anterior; inactivo es igual a id en la figura anterior.
Inserte la descripción de la imagen aquí
2.2. Información de descomposición del uso de la CPU por cada proceso: pidstat -u 1 -p número de proceso
Inserte la descripción de la imagen aquí
3. Use el comando libre para ver la memoria del sistema: libre -m
Inserte la descripción de la imagen aquí
3.1, también puede usar el comando pidstat -p número de proceso -r intervalo de muestreo segundos para ver La memoria está ocupada.
Inserte la descripción de la imagen aquí
4. Ver el número de disco libre restante: df -h
Inserte la descripción de la imagen aquí
5. Ver E / S del disco: iostat -xdk 2 3
Inserte la descripción de la imagen aquí
Observe principalmente el campo% util: util significa que un pequeño porcentaje de un segundo se usa para operaciones de E / S, que está cerca del 100%, significa que el ancho de banda del disco está lleno y el programa debe optimizarse o el disco debe aumentarse.

5.1 También puede utilizar el comando pidstat -d sample interval seconds -p process number para ver la E / S del disco.
Inserte la descripción de la imagen aquí
6. E / S de red: resumen de ifstat
Inserte la descripción de la imagen aquí
: servidor de diagnóstico y evaluación del rendimiento, básicamente estos comandos y pasos.

Supongo que te gusta

Origin blog.csdn.net/mangomango123/article/details/114005390
Recomendado
Clasificación