GNU/Linux >> Tutoriales Linux >  >> Linux

¿Averigüe qué proceso de apache de alto uso de CPU está haciendo realmente?

Solución 1:

Bueno, en caso de que te sientas valiente:

gdb -p 20788

luego emita bt para ver el marco de la pila, por ej. ej.

Y por cierto, también hay ltrace para mencionar, pruébalo también.

UPD. :bueno, está bien, ya que ahora tenemos una idea de que Apache realmente está ejecutando algo, ¿por qué no miras mod_status? salida — ¿Extendida?

Solución 2:

Un enfoque muy fácil es usar htop . Puede ordenar los procesos de CPU alta y luego usar

  • s para strace un proceso
  • l para lsof para ver los archivos abiertos de un proceso
  • L a ltrace .

Descubrí que al menos una de esas opciones encuentra el script que genera la carga y, por supuesto, puede usar esto en un servidor web de producción para depurar.

Solución 3:

Podrías probar:

  • iotop (que muestra E/S en el sistema)
  • netstat -t (mostrando conexiones)
  • Eche un vistazo a los archivos de registro de apache y descubra qué hizo el servidor por última vez
  • establecer algunos RLimits para el proceso de apache. Cuando se alcanzan estos límites, el proceso se cancelará, brindándole más información

Linux
  1. 4 formas de averiguar un núcleo de CPU que ejecuta un proceso particular en Linux

  2. ¿Qué proceso creó esta ventana X11?

  3. ¿Comando de terminal para averiguar si un servidor es virtual o físico?

  4. Solucionar problemas de alto uso de CPU en Windows Server

  5. ¿Cómo averiguo qué proceso tiene un bloqueo en un archivo en Linux?

¿Qué versión de Linux estoy ejecutando? Aquí está cómo averiguarlo

Cómo limitar el uso de la CPU de un proceso en Linux

Cómo obtener el uso de la CPU de un solo proceso en Linux

Jenkins ejecutándose con un uso de CPU muy alto

Encuentra qué proceso está en el otro extremo de una tubería

¿Cómo registro el uso de la CPU por proceso?