¿Cómo encuentro el proceso con la carga más alta?

10

Tengo un VPS de un solo núcleo con un promedio de carga que a veces supera los 25. Cuando llega a eso, se vuelve insoportablemente lento, e incluso los comandos se ejecutan dash, que es más rápido y usa menos RAM que bash, tarda un tiempo en ejecutarse. ¿Cómo puedo rastrear qué proceso está causando la alta carga?

NerdOfLinux
fuente
2
sudo apt install htople brinda una herramienta útil en modo texto para este propósito (más fácil de usar que el estándar top). Pero topes bueno si quieres una huella pequeña.
sudodus
2
La longitud de la cola de carga indica cuántos procesos están listos para usar la CPU. Esto puede no ser necesariamente un proceso único que cause el problema.
Thorbjørn Ravn Andersen

Respuestas:

16

Puedes instalar htop. Lo bueno de esto htopes que le mostrará su uso por CPU, así como un gráfico de texto significativo de su memoria y el uso de intercambio justo en la parte superior.

Para instalar htop:

sudo apt-get install htop

Iniciarlo:

htop

ingrese la descripción de la imagen aquí

Presione F6para ordenar los procesos, luego use la tecla de navegación que puede elegir PERCENT_CPUy presione Entrar.

ingrese la descripción de la imagen aquí

O puede usar topde esta manera ( fuente ):

top -b -n 1 | head -n 12
Neferpitou
fuente
2
Como acceso directo, puede usar Ppara ordenar por uso del procesador, Mpor memoria o Tpor tiempo, y tpara volver al diseño del árbol.
deltab
Curiosamente, htoptiene un poco de soporte básico del mouse. Si hace clic en las columnas, también le permitirá ordenarlas (si no me equivoco). Hay algunas otras operaciones que funcionan con el mouse.
Ismael Miguel el
11

El siguiente es simplemente robado de Unix.SE: ¿Encuentra el proceso que está tomando el uso máximo de la CPU si el uso de la CPU es más del 60%? aunque, por supuesto, adaptado a esta pregunta.

enumerar procesos por uso específico de CPU

ps ahux --sort=-c | awk '{if($3>0.0)printf"%s %6d %s\n",$3,$2,$11}'

Esto proporciona una lista de los procesos que tienen un >0.0porcentaje de uso de CPU . Puede cambiar este valor según sus necesidades, por ejemplo >50.0. Cada línea contiene el uso de CPU en porcentaje, el PID y el archivo del proceso.

enumerar procesos con el mayor uso de CPU

ps ahux --sort=-c | awk 'NR<=5{printf"%s %6d %s\n",$3,$2,$11}'

Esto muestra los 5 NR<=5procesos principales ( ) que actualmente causan la mayor carga de CPU.

postre
fuente
1

Ayer estaba estudiando awky jugué con las otras dos respuestas. Aquí está el resultado:

  • Obtenga solo el proceso con el mayor uso de CPU, utilizando ps aux:

    ps auxh | awk -v max=0 '{if($3>max){CPU=$3; PID=$2; NAME=$11; max=$3}} END{printf "%5s %6d %s\n",CPU,PID,NAME}'
    
  • Obtenga los tres procesos con el mayor uso de CPU, utilizando top:

    top -b -n 1 | awk 'NR>7 && NR<11 {printf "top: %5s %6d %s %s\n",$9,$1,$12,$13}'
    
  • Obtenga los tres procesos con el mayor uso de CPU, utilizando ps aux:

    ps auxh --sort=-c | awk 'NR<=3 {printf "ps:  %5s %6d %s\n",$3,$2,$11}'
    

Intenté ejecutar los dos últimos comandos simultáneamente (con <command>; wait; <command>y <command> & <command> &), pero luego me di cuenta de que no es posible en absoluto :)


Referencias

pa4080
fuente
El último no muestra el proceso con el mayor uso de CPU, pero comienza con el segundo, probablemente querrás decir NR>=2allí: resulta que psproporciona la opción hque omite la línea de encabezado, mira mi respuesta actualizada.
postre
@dessert, tienes razón, anteriormente era NR>=2, pero NR>1es corto :) He actualizado la respuesta.
pa4080
1

Usar topcomando

top- mostrar procesos de Linux

El programa superior proporciona una vista dinámica en tiempo real de un sistema en ejecución. Puede mostrar información resumida del sistema, así como una lista de procesos o subprocesos que el kernel de Linux administra actualmente. Los tipos de información de resumen del sistema que se muestran y los tipos, el orden y el tamaño de la información que se muestra para los procesos son todos configurables por el usuario y esa configuración se puede hacer persistente en todos los reinicios.

fuente

buen tutorial de youtube

Eric Korolev
fuente