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 de CPU 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, profundizamos más y te dejamos 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 con una terminal
Esto es muy parecido a enumerar los procesos en el shell. Para enumerar los procesos asociados con la 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 indicador -A como se muestra:
[[email protected] ~]$ ps -A
Alternativamente, también puede usar la bandera –e como se muestra. Seguirás obteniendo resultados similares.
[[email protected] ~]$ ps -e
4) Mostrar la salida en formato BSD
Para listar los procesos en formato BSD, ejecute el comando
$ ps -aux
Analicemos el comando:
El indicador -a indica a ps que muestre todos los procesos de todos los usuarios. Esto, sin embargo, excluye los procesos asociados con 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 o la 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 la 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:se refiere al ID del proceso principal
- C:se refiere al %CPU o porcentaje de 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. La bandera -o determina qué columnas se mostrarán al ejecutar el comando ps. En el siguiente ejemplo, solo el PID y COMENZAR 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, use el indicador -u como se muestra”
$ ps -u usuario
O
$ ps -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 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 root 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 de 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 (ID 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 listar procesos por PPID, ejecute
$ ps -f –ppid
Por ejemplo, para enumerar procesos propiedad de PPID 31903 ejecutar
$ 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, use el indicador -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 los procesos por el valor de tty, use el indicador -t . Por ejemplo, para mostrar los procesos adjuntos a tty1, ejecute el comando ps como se muestra:
$ ps -ft tty1
12) Imprimir 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 usando el subproceso del proceso, use el marcador -L 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 el %Uso de 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 memoria y CPU
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) Eliminación de 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 kill, el ejemplo se muestra a continuación,
$ kill -9 2583 2584
17) Listar todos los PID de todas las instancias de proceso
Puede enumerar todos los PID asociados con un proceso usando 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 ejecución de los procesos
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, use -C flag 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 limitarse al 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.
Lea también :25 ejemplos de comandos principales para monitorear el rendimiento del servidor Linux