En este artículo:
El comando top muestra datos relacionados con el rendimiento del sistema. Por defecto se actualiza cada 5 segundos.
Además de comprobar la cantidad de procesos en ejecución, podemos ver la carga de la CPU: %CPU
También es interesante el porcentaje de CPU idle, que es el porcentaje de la CPU que está inactivo, sin carga de trabajo (cuanto menor sea este porcentaje, más saturado está el sistema).
Con top podemos encontrar los procesos zombies si los hay..
En la primera línea del resultado de top, podemos ver un resumen de los procesos. Una métrica importante es la de load average.
Load average es el Promedio de carga del sistema, calculado en intervalos de 1, 5 y 15 minutos.
Interpretaciones de Load Average:
–> Lo más adecuado es encontrar valores por denbjo de 1 en cada procesador.
top permite ordenar el resultado mostrado, eligiendo el campo deseado para el filtro. En este caso elegiremos el campo de CPU : %CPU
Para usar el filtrado por campos, debemos usar el parámetro -o, y el nombre del campo:
top -o %CPU
Si quisiéramos ordenar/filtrar por otros campos, podemos usar la letra f para mostrar todos los campos disponibles:
* PID = Process Id TGID = Thread Group Id
* USER = Effective User Name ENVIRON = Environment vars
* PR = Priority vMj = Major Faults delta
* NI = Nice Value vMn = Minor Faults delta
* VIRT = Virtual Image (KiB) USED = Res+Swap Size (KiB)
* RES = Resident Size (KiB) nsIPC = IPC namespace Inode
* SHR = Shared Memory (KiB) nsMNT = MNT namespace Inode
* S = Process Status nsNET = NET namespace Inode
* %CPU = CPU Usage nsPID = PID namespace Inode
* %MEM = Memory Usage (RES) nsUSER = USER namespace Inode
* TIME+ = CPU Time, hundredths nsUTS = UTS namespace Inode
* COMMAND = Command Name/Line
Después, nos colocamos encima del campo deseado, pulsamos la tecla s (sort), y la tecla q (quit) para salir del menú,
y veremos el nuevo resultado del filtrado que hará top:
Lo primero que tenemos que tener en cuenta con el comando ps es que acepta la sintaxis BSD y la sintaxis de UNIX.
Diferenciación básica:
El comando ps por defecto muestra una instantánea de los procesos en ejecución en el sistema.
salida del comando:
ps ax
salida del comando:
ps -e
ps aux
ps -ef
salida del comando:
ps aux
salida del comando:
ps-ef
Se pueden especificar múltiples campos cuando se usa la opción “–sort” , separados por una coma.
Además, los campos pueden ir precedidos por el símbolo “–” o “+“, indicando que se use el orden descendente o ascendente respectivamente.
ps aux --sort=-pcpu
A continuación vemos cómo se ordenan los procesos en orden descendiente (de mayor a menor consumo de CPU):
pcpu es compatible con %cpu, según los especificadores standard de formato (STANDARD FORMAT SPECIFIERS):
Aquí vemos el resultado de la salida ordenada, usando %cpu en lugar de pcpu:
ps aux --sort -%cpu
El comando watch ejecuta un comando periódicamente, mostrando su salida por pantalla cada x segundos.
Así, podemos utilizar el comando ps junto con el comando watch, para que cada segundo muestre el resultado del comando ps -e (todos los procesos), añadiendo la opción -o que permite utilizar un formato definido por el usuario (mostrar el pid del proceso, sus ppid, el cmd y el porcentaje de CPU utilizado).
Los especificadores de formato los podemos encontrar en el manual del comando ps, en la sección: STANDARD FORMAT SPECIFIERS
Así que vamos a lanzar el comando watch con el comando ps y unos especificadores de formato concretos:
watch -n 1 'ps -eo pid,ppid,cmd,%cpu --sort=-%cpu | head'
-n : el intervalo en segundos
ps -o : utiliza un formato definido por el usuario.
Esto es lo que el anterior comando mostrará por pantalla:
El comando vmstat muestra estadísticas sobre los procesos del sistema, memoria, intercambio, Entrada/Salida y rendimiento de la CPU.
Vemos que vmstat muestra varias columnas y dentro de ellas varios valores:
Vamos a intentar centrarnos en las métricas más importantes de vmstat y su interpretación:
Por defecto, vmstat se ejecuta una vez. este comando es útil cuando observamos su ejecución cada ciertos segundos, y contrastamos los resultados.
Para ello usamos el comando y un número, que serán los segundos entre una ejecución y la siguiente:
vmstat 3
De esta forma es más fácil observar si nuestra máquina Linux tiene algún problema, quizás observando el número de procesos bloqueados, o la cantidad de memoria física y de intercambio utilizadas.
El comando sar permite monitorizar el rendimiento de la CPU, memoria, E/S .. en tiempo real.
La salida del comando sar muestra :
sar -u: uso de CPU de todas las CPU´s. Muestra el uso de la CPU para el día actual, que se recopiló hasta el momento.
sar -u
sar -u 1 4 :muestra el uso de la CPU en tiempo real, cada 1 segundo, 4 veces en total.
sar -u 1 4
sar -u ALL
lo mismo que -u pero muestra campos adicionales
Existen diversas formas de comprobar el uso de la CPU por los procesos en Linux; hemos visto los comandos:
Cada uno de ellos ofrece diversas y diferentes opciones que permiten comprobar la carga de la CPU en Linux, y revisar qué procesos tienen más consumo en la CPU, que serán de utilidad dependiendo del caso.