El monitoreo del sistema Linux es una de las tareas más importantes que cualquier usuario de Linux o un administrador de sistemas debe realizar las 24 horas del día para garantizar que el sistema funcione sin problemas y evitar cuellos de botella. Linux viene con algunas herramientas integradas que pueden ayudarlo a monitorear su sistema. Uno de estos es el ps (estado de los procesos) comando que monitorea específicamente los procesos en ejecución y entre otras métricas asociadas con los procesos, como el porcentaje UPC y memoria utilización. El comando ps lee el sistema de archivos /proc que está basado en RAM o es un sistema de archivos virtual.
En esta guía, nos sumergimos más profundamente y le permitimos 20 de los comandos ps más utilizados.
1) Proceso de listado en el Shell
La forma más simple del comando ps en Linux, enumera los procesos en ejecución en el shell actual. Esto se puede ilustrar a continuación.
[[email protected] ~]$ ps PID TTY TIME CMD 1437 pts/0 00:00:00 bash 1465 pts/0 00:00:00 ps [[email protected] ~]$
Definamos algunos términos:
- PID: Este es el ID del proceso.
- TTY: Esto se refiere a la terminal que inició y está controlando el proceso.
- TIEMPO: Este es el tiempo / tiempo acumulado durante el que se ha ejecutado un proceso.
- CMD: Nombre del comando que inició el proceso.
2) Listado de procesos asociados a una terminal
Esto es muy parecido a enumerar los procesos en el shell. Para enumerar los procesos asociados con el terminal que está ejecutando actualmente, ejecute el comando:
[[email protected] ~]$ ps -T PID SPID TTY TIME CMD 1437 1437 pts/0 00:00:00 bash 13357 13357 pts/0 00:00:00 ps [[email protected] ~]$
3) Mostrar todos los procesos en ejecución en su sistema
Para obtener una descripción general de todos los procesos en ejecución en su sistema Linux, use el -Una bandera como se muestra:
[[email protected] ~]$ ps -A
Alternativamente, también puede usar el –mi bandera como se muestra. Seguirás obteniendo resultados similares.
[[email protected] ~]$ ps -e
4) Mostrar salida en formato BSD
Para listar los procesos en formato BSD, ejecute el comando
$ ps -aux
Desglosemos el comando:
El indicador -a indica a ps que muestre todos los procesos de todos los usuarios. Esto, sin embargo, excluye los procesos asociados a un terminal específico.
La bandera -u implica un formato orientado al usuario. Proporciona información más detallada asociada con los procesos en ejecución.
El indicador x enumera los procesos que generalmente se inician al iniciar el sistema, así como los procesos en segundo plano.
Donde:
- USUARIO: especifica el usuario que ejecuta el proceso.
- PID: este es el ID de proceso del proceso.
- %CPU: este es el porcentaje de uso de CPU de cada proceso
- %MEM: este es el % de la memoria física utilizada por el proceso
- VSZ: este es el tamaño de la memoria virtual de cada proceso en kilobytes
- RSS: este es el tamaño/cantidad de memoria física utilizada por un proceso
- STAT: apunta al código de estado del proceso, por ejemplo, S (dormido), Z (zombie) y R (corriendo)
- INICIO: este es el momento en que el proceso comenzó a ejecutarse
5) Mostrar salida en formato UNIX
Si desea mostrar la salida en formato UNIX, ejecute el comando ps con una combinación de -ef banderas
[[email protected] ~]$ ps -ef
El indicador -e le dice al comando ps que enumere todos los procesos
El indicador -f (formato completo) indica al comando ps que enumere información detallada sobre los procesos.
Definamos algunos términos nuevos de la captura de pantalla:
- PPID: Esto se refiere a la identificación del proceso principal
- C: Esto se refiere al %CPU o porcentaje de la utilización de CPU de un proceso.
- STIME: Indica la hora en que se inició el comando. Igual que INICIO
6) Mostrar la salida en un formato definido por el usuario
En una salida de formato definido por el usuario, tiene el poder de decidir qué columnas se mostrarán. El -o bandera determina qué columnas se mostrarán al ejecutar el comando ps. En el siguiente ejemplo, sólo el PID y COMIENZO se muestran las columnas. Asegúrese de tener en cuenta que las opciones de las columnas se pasan en minúsculas en el comando ps.
[[email protected] ~]$ ps -efo pid,start PID STARTED 1437 21:55:28 13632 01:41:16 [[email protected] ~]$
7) Mostrar los procesos en ejecución actuales de un usuario
A veces, es posible que desee averiguar los procesos que están asociados con un determinado usuario, por lo que para lograrlo, utilice el -u bandera como se muestra»
$ ps -u usuario
O
$ pd -u uid
Por ejemplo, para ver los procesos asociados con el usuario ‘Linuxtechi’, ejecute el comando:
$ ps -u linuxtechi
Alternativamente, puede usar el uid del usuario (ID de usuario). Puede obtener la identificación del usuario ejecutando el comando:
$ id de usuario
[[email protected] ~]$ id linuxtechi uid=1000(linuxtechi) gid=1000(linuxtechi) groups=1000(linuxtechi),10(wheel) [[email protected] ~]$
Del resultado anterior, podemos ver claramente que el uid para el usuario ‘linuxtechi’ es 1000. Luego puede usar el comando ps y el uid para encontrar los procesos asociados con el usuario.
$ ps -u 1000
Para el usuario root, ejecute el comando
$ ps -u root
De manera similar, puede verificar usando el uid del usuario raíz cuyo valor es 0
$ ps -u 0
8) Visualización de procesos de grupo
La lista de procesos de grupo es similar a la lista de procesos de usuario. Puede listar un proceso de grupo usando el comando ps pasando el nombre del grupo especificando la ID del grupo.
Por ejemplo, para mostrar los procesos asociados con el grupo ‘apache’ ejecute el comando:
$ ps -fG
$ ps -fG apache
Alternativamente, puede pasar la ID del grupo (gid) en lugar del nombre del grupo. puede obtener los GID del archivo /etc/group.
Por ejemplo, en este caso, el ID de grupo para Apache es 48. Entonces, en lugar de especificar el nombre del grupo ‘apache‘ simplemente especifique el GID no. 48.
$ ps -fG 48
9) Visualización de procesos usando PID y PPID
Los procesos de Linux también se pueden mostrar usando el PID (Identificacion de proceso) y el PPID (ID del proceso principal). El PPID se refiere al PID del padre de un proceso.
Para listar procesos por PID, ejecute
$ ps -fp PID
Por ejemplo, para enumerar los procesos asociados con el PID 1286, ejecute el comando:
[[email protected] ~]$ ps -fp 1286 UID PID PPID C STIME TTY TIME CMD postfix 1286 1285 0 03:49 ? 00:00:00 pickup -l -t unix -u [[email protected] ~]$
Para enumerar los procesos por PPID, ejecute
$ ps -f –ppid
Por ejemplo, para enumerar los procesos propiedad de PPID 31903, ejecute
$ ps -f --ppid 31903
10) Búsqueda de un PID usando el nombre del proceso
La mayor parte del tiempo no conocemos el PID del nombre del proceso. Para hacerlo, utilice el -Bandera C como se muestra
$ ps -C
[[email protected] ~]$ ps -C firefox PID TTY TIME CMD 1446 tty2 00:00:04 firefox [[email protected] ~]$
11) Visualización del proceso mediante TTY
Si desea filtrar procesos por el valor tty use el -t bandera. Por ejemplo, para mostrar los procesos adjuntos a tty1, ejecute el comando ps como se muestra:
$ ps -ft tty1
12) Imprimiendo el Árbol de Procesos
Un árbol de procesos muestra cómo se vinculan los procesos en un sistema Linux. Procesos sin enlaces primarios al sistema a través de init o systemd. La impresión requiere que utilice el siguiente formato:
$ ps -e --forest
13) Filtrar un proceso según el proceso del subproceso
Para filtrar un proceso utilizando el subproceso de proceso, utilice el -L bandera como se muestra,
$ ps -L 1446
14) Monitoreo de procesos en tiempo real
Puede usar la utilidad watch para monitorear información estática sobre un proceso. La salida se reproduce cada segundo como se muestra a continuación
$ watch -n 1 'ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head'
El comando imprime las columnas pid,ppid,cmd,%mem y %cpu y monitorea las estadísticas cada segundo mientras clasifica los % de utilización de la CPU en orden descendente.
15) Solucionar problemas de rendimiento de la máquina Linux
Cuando su sistema es lento o está sobrecargado, puede identificar el proceso de mayor ejecución por el mayor uso de CPU y memoria
Ejecute el siguiente comando ps para enumerar los principales procesos que consumen mucha memoria,
$ ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head
Ejecute el siguiente comando ps para enumerar los principales procesos que consumen mucha CPU,
$ ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head
La salida de muestra del comando ps anterior en mi sistema está a continuación,
16) Matar procesos que no responden
El comando ps puede permitirle eliminar aplicaciones que no responden o cualquier proceso que esté acaparando la CPU y la RAM. Para hacer esto, necesita encontrar el PID de esa aplicación en particular usando el comando:
$ ps -A | grep -i stress
Una vez que haya encontrado el PID del proceso, puede terminarlo usando el comando matar, el ejemplo se muestra a continuación,
$ kill -9 2583 2584
17) Enumere todos los PID de todas las instancias de proceso
Puede enumerar todos los PID asociados con un proceso utilizando la sintaxis:
$ ps -C
Por ejemplo, para averiguar los PID asociados con el servidor web httpd, ejecute:
$ ps -C httpd -o pid=
18) Mostrar la duración de los procesos que se han estado ejecutando
Para mostrar cuánto tiempo se han estado ejecutando los procesos, ejecute el comando:
$ ps -eo comm,etime,user
Use el siguiente comando ps para saber cuánto tiempo se ha estado ejecutando un proceso en particular,
$ ps -o etime -p
Supongamos que queremos saber sobre el proceso mysql
[[email protected] ~]$ ps -C mysqld -o pid= 3807 [[email protected] ~]$ [[email protected] ~]$ ps -o etime -p 3807 ELAPSED 01:13:56 [[email protected] ~]$
19) Lista de procesos secundarios de un proceso
Para imprimir o enumerar los procesos secundarios de un proceso, utilice -Bandera C en la siguiente sintaxis:
$ ps -C
Por ejemplo, para enumerar los procesos secundarios asociados con el proceso httpd, ejecute
[[email protected] ~]$ ps -C httpd PID TTY TIME CMD 31911 ? 00:00:00 httpd 31918 ? 00:00:00 httpd 31919 ? 00:00:00 httpd 31920 ? 00:00:01 httpd 31921 ? 00:00:01 httpd 31922 ? 00:00:01 httpd [[email protected] ~]$
20) Filtrado de salida del comando ps usando grep
Para obtener resultados específicos en el comando ps, puede canalizar la salida a la herramienta de utilidad grep y proporcionar los criterios de búsqueda.
Por ejemplo, para buscar o restringir el proceso php, ejecute el comando:
$ ps -ef | grep php
Hemos enumerado los 20 comandos ps principales que se usan comúnmente para enumerar y monitorear los procesos que se ejecutan en su sistema Linux. Estos comandos funcionarán en todas las distribuciones de Linux y sin duda le brindarán una descripción general de los procesos que se ejecutan en su sistema y lo ayudarán a determinar cuáles están sobrecargando sus recursos de CPU y RAM. ¿Encontró esta guía perspicaz? Siéntase libre de darle me gusta y compartirlo a través de sus plataformas de redes sociales. Tus comentarios son bienvenidos.
Leer también : 25 ejemplos de comandos principales para monitorear el rendimiento del servidor Linux