Manejo de problemas en línea 1---Ubicación elevada del problema de la CPU

Pasos de solución de problemas de CPU alta en línea: 

método uno: 

  1. comando superior para ver el proceso y el uso de la CPU
  2. Juzgar si el GC hace que la CPU se acelere depende principalmente de la frecuencia del GC y el uso de la memoria. Para ver los comandos específicos, consulte:  Comandos comunes de jvm
  3. Si no es un problema de GC, top -Hp PID para ver la situación del subproceso del proceso con el mayor uso de CPU
    1. Después de determinar el subproceso, calcule el valor hexadecimal correspondiente a la ID del subproceso: printf "%x\n" <java_thread_id> 
    2. Muestra el contenido de la pila de subprocesos: jstack <java_pid> | grep <valor hexadecimal de id de subproceso> -A 30 [-A 30 significa imprimir 30 líneas hacia abajo], luego puede ver qué parte del código comercial hace que la CPU se eleve alto. La información aquí puede ser precisa para la clase, el método y el número de línea del código Java: 
  4. De acuerdo con el resultado del tercer paso, modifique el código de lógica de negocios

Método dos: 

        1. Exporte la información de la pila correspondiente al hilo en el método 1: 

jstack PID > stack.text

        2、将导出的文件上传到: gceasy.io/ft-index.jsp   Analizador inteligente de volcado de subprocesos de Java: análisis de volcado de subprocesos en segundos Analizador gratuito de volcado de subprocesos en línea para solucionar problemas de Java y aplicaciones de Android. Se admiten Kotlin, Clojure, Scala, Jruby, Jython, todos los volcados de subprocesos de lenguaje JVM. hs_err_pid, se analizan los archivos de volcado del núcleo. https://gceasy.io/ft-index.jsp          

 Una vez completada la carga, se analizará el archivo y se obtendrá la siguiente información: 

Comando superior y descripción de parámetros: 

1. Verifique el uso de la CPU en línea: comando superior

 En la imagen de arriba, el resultado de mi comando superior no es el mismo que el suyo. Mi fuente es roja y muestra la cantidad de CPU y el uso privado de cada uno, así como el uso de la memoria es una estructura gráfica. Y la captura de pantalla de tu comando superior debería verse así: 

Esto requiere recordar varias teclas y funciones: 

  • Presiona z para cambiar el color del trazo superior
  • Presione 1 para ver una representación gráfica de cada núcleo de CPU en el sistema
  • La tecla m muestra gráficamente el uso de la memoria
  • t visualización gráfica del uso de la CPU

1.1 información de parámetros superior 

  1. up *** days, *** min : indica que este servidor se ejecuta continuamente durante *** días *** minutos
  2. *** usuarios: el número de usuarios conectados actualmente 
  3. promedio de carga: ***, ***, ***: carga del sistema, es decir, la longitud promedio de la cola de tareas. Los tres valores son el valor promedio desde hace 1 minuto, 5 minutos y 15 minutos hasta el presente

1.2 Tareas del sistema de tareas 

  1.  total: el número total de procesos
  2. en ejecución: el número de procesos que se están ejecutando
  3. durmiendo: el número de procesos que están durmiendo
  4. detenido: número de procesos suspendidos
  5. zombi: número de procesos zombi

1.3 %Cpu Uso de la CPU del sistema 

  1. us : índice de ocupación de usuarios del sistema
  2. sy: índice de ocupación del núcleo del sistema
  3. ni: relación de ocupación de programación prioritaria
  4. id: CPU inactiva
  5. wa: relación de ocupación igual de E/S
  6. hola: ocupación de interrupción de hardware
  7. si: interrupción de software ocupada
  8.  st: virtualización ocupada

1.4 Uso de la memoria del sistema Kib Mem

  1. total: espacio de memoria total
  2. libre: memoria libre
  3. usado: usado
  4. buff/cache: la suma de los búferes de la memoria física y la memoria de intercambio.

1.5 Uso del espacio de intercambio del sistema Kib Swap

  1. total: espacio de intercambio total
  2. gratis: espacio de intercambio gratuito
  3. used: espacio de intercambio usado
  4. aproveche Mem: espacio físico disponible.

1.6 Información del proceso en ejecución, que también es la información más utilizada

  1. PID: Identificación del proceso
  2. USUARIO: dueño del proceso
  3. relaciones públicas: prioridad
  4. NI: prioridad del proceso
  5. VIRT: memoria virtual
  6. RES: la memoria física real utilizada
  7. SHR: tamaño de memoria compartida
  8. S: estado del proceso (D = estado de suspensión ininterrumpida, R = en ejecución o ejecutable, S = dormido, T significa rastreado y detenido, Z = zombi
  9. %CPU: el porcentaje de tiempo de CPU ocupado desde la última actualización
  10. %MEM: el porcentaje de memoria física utilizada por el proceso
  11. TIME+: tiempo total de cpu utilizado por el proceso
  12. COMANDO: nombre de comando/línea de comando

2. Parámetros comunes del comando superior: analice el hilo específico superior -Hp PID

  1. 1.   H: hilo de pantalla
  2. 2.  p: ordenar según el porcentaje de uso de la CPU.

 Después de usar el comando top -Hp PID, la información que se muestra es algo diferente del comando top: en lugar de Tarea, muestra Subprocesos, que identifica el número total de subprocesos en el proceso actual.

Documentos de referencia: 

        Explicación detallada del comando superior

Supongo que te gusta

Origin blog.csdn.net/zhoushimiao1990/article/details/126087610
Recomendado
Clasificación