Geekflare recibe el apoyo de nuestra audiencia. Podemos ganar comisiones de afiliación de los enlaces de compra en este sitio.
En Linux Última actualización: 25 de septiembre de 2023
Compartir en:
Escáner de seguridad de aplicaciones web Invicti - la única solución que ofrece verificación automática de vulnerabilidades con Proof-Based Scanning™.

Sepa cuánto consume de CPU o memoria un proceso individual o todo el sistema.

Como administrador del sistema, a menudo tiene que enfrentarse a un incidente en el que la aplicación es lenta o no responde debido a una elevada utilización de la CPU/memoria/red. Si el servidor aloja un solo proceso, entonces es fácil averiguar cuándo el proceso consume todos los recursos. Sin embargo, imagine un servidor compartido en el que se ejecutan varios servicios y necesita averiguar cuál de ellos se está comiendo todos los recursos.

Hay muchos programas de control que hacen esto de forma inmediata. Pero si no tiene uno o está buscando una solución basada en comandos, entonces aquí tiene. ¡Todos son GRATUITOS!

top

Es posible que desee empezar por mirar en el resultado de top o htop para ver la visión general de los procesos.

Como puede ver a continuación, le da una excelente idea de lo que están utilizando todos los procesos. Si se fija en el primero, que es MySQL está ocupando el 11,9% de la CPU y el 2,5% de la CPU.

arriba - 11:57:33 arriba 0 min, 1 usuario, carga media: 3.69, 0.96, 0.32
Tareas: 165 total, 2 en ejecución, 113 durmiendo, 0 paradas, 0 zombie
%Cpu(s): 21.0 us, 5.5 sy, 0.0 ni, 70.5 id, 1.7 wa, 0.0 hi, 1.3 si, 0.0 st
KiB Mem : 7637308 total, 5802888 libre, 849512 usado, 984908 buff/cache
KiB Swap: 0 total, 0 libre, 0 usado.  6495648 avail Mem 

 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME COMMAND 
 1986 netdata 20 0 1738856 191560 22948 S 11.6 2.5 0:02.30 mysqld 
 3021 www-data 20 0 255288 78420 55484 S 6.6 1.0 0:01.55 php-fpm 
 3138 www-data 20 0 253096 79780 59228 S 6.6 1.0 0:00.92 php-fpm 
 3153 www-data 20 0 255116 79088 56472 S 5.0 1.0 0:00.70 php-fpm 
 3037 www-data 20 0 257200 81088 56216 S 4.3 1.1 0:01.50 php-fpm 
 3048 www-data 20 0 257088 78740 55380 S 4.3 1.0 0:01.46 php-fpm 
 3054 www-data 20 0 254160 72168 52108 S 3.7 0.9 0:01.32 php-fpm 
 3135 www-data 20 0 255084 75912 54836 S 3.7 1.0 0:00.91 php-fpm 
 3051 www-data 20 0 254096 73804 51964 S 3.0 1.0 0:01.38 php-fpm 
 2962 www-data 20 0 45280 7284 3488 R 2.0 0.1 0:00.22 openresty 
 1062 netdata 20 0 338748 76144 6720 S 1.0 1.0 0:01.31 netdata 
 1702 netdata 20 0 21852 4232 2352 S 1.0 0.1 0:00.34 apps.plugin 
 1729 netdata 20 0 18636 3280 2764 S 0.7 0.0 0:00.05 bash 
 1980 netdata 20 0 62008 12896 5796 S 0.7 0.2 0:00.14 redis-server 
 11 root 20 0 0 0 0 I 0.3 0.0 0 0:00.14 rcu_sched 
 1007 root 20 0 1347424 74524 38872 S 0.3 1.0 0:00.92 dockerd 
 1857 root 20 0 10600 5564 4276 S 0.3 0.1 0:00.03 containerd-shim 
 2045 root 20 0 9948 6028 5016 S 0.3 0.1 0:00.14 forego 
 2934 root 20 0 13616 8760 5928 S 0.3 0.1 0:00.07 docker-gen 
 2966 systemd 20 0 25784 7924 2340 S 0.3 0.1 0:00.06 nginx

La parte superior está instalado en casi todas las distribuciones de Linux.

Una vez que identifique al sospechoso, entonces es posible que desee centrarse en ese proceso en lugar de todo como lo vio anteriormente. Puede seguir utilizando el comando top pero con algún argumento.

Digamos que conoce el id del proceso (PID); puede utilizar el siguiente comando.

top -p $PID

Abajo un ejemplo de top -p 3102

top - 11:59:56 up 3 min, 1 usuario, carga media: 0.72, 0.70, 0.31
Tareas:   1 total, 0 en ejecución, 1 durmiendo, 0 detenidas, 0 zombie
%Cpu(s): 7.1 us, 2.9 sy, 0.0 ni, 89.1 id, 0.3 wa, 0.0 hi, 0.7 si, 0.0 st
KiB Mem : 7637308 total, 5802024 libre, 783672 usado, 1051612 buff/cache
KiB Swap: 0 total, 0 libre, 0 usado.  6555636 avail Mem 

 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME COMMAND 
 3102 www-data 20 0 329500 82376 60640 S 0.0 1.1 0:03.35 php-fpm

También puede utilizar grep con top. A continuación un ejemplo de comprobación de la utilización de Docker.

root@geekflare-com:~# top | grep docker
 1007 root 20 0 1347424 74524 38872 S 0.3 1.0 0:01.38 dockerd 
 2934 root 20 0 14676 9652 5928 S 0.3 0.1 0:00.54 docker-gen 
 1007 root 20 0 1347424 74524 38872 S 0.3 1.0 0:01.39 dockerd 
 1007 root 20 0 1347424 74524 38872 S 1.0 1.0 0:01.42 dockerd 
 2934 root 20 0 14740 9652 5928 S 0.3 0.1 0:00.55 docker-gen 
 2934 root 20 0 14740 9652 5928 S 0.3 0.1 0:00.56 docker-gen

htop

Similar al anterior pero con más información. Como puede, tiene la columna de comandos, que es útil para identificar la ruta del proceso. Y también es de color.

puede que htop no esté instalado por defecto, pero siempre puede hacerlo como se indica a continuación.

Instalar htop en Ubuntu

apt-get install htop

Instalar htop en CentOS/RHEL 8.x

dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
dnf update
dnf install htop

mira

Como su nombre indica, obtendrá una vista de la utilización del sistema en una sola pantalla. Los procesos en ejecución se ordenan por su utilización de la CPU.

Puede instalar miradas en CentOS 8 utilizando DNF como se indica a continuación.

dnf install glances

para CentOS7, puede utilizar YUM

yum install glances

atop

Es similar al anterior pero con una característica brillante para registrar la salida en un archivo para que pueda verlos más tarde. Imagine que existe un patrón de tener un problema en una ventana de tiempo específica. Puede programar escribir la salida en un archivo a través de crontab u otro, y más tarde puede reproducirla.

Para grabar la salida en un archivo

atop -w nombrearchivo

y, para reproducir

atop -r nombrearchivo

Admite múltiples argumentos como intervalo, muestras, etc. y le recomiendo encarecidamente que eche un vistazo a la página del manual.

Si sólo está interesado en la resolución de problemas en tiempo real, entonces simplemente ejecute atop y debería ver como abajo.

Puede instalar atop como se indica a continuación

dnf install atop

ps

Comprobemos ahora el comando ps.

Puede utilizar el comando ps con PID para imprimir su utilización de CPU y memoria.

ps -p $PID -o %cpu,%mem

La salida debería tener este aspecto

root@sr-master-us:~# ps -p 1048 -o %cpu,%mem
%CPU %MEM
 0.2 3.0
root@sr-master-us:~#

nmon

Herramienta interactiva de monitorización por línea de comandos de la utilización de CPU, memoria, discos, red, NFS y memoria virtual. Para ver el proceso principal (por utilización), puede ejecutar nmon y pulse el botón t.

Puede instalar nmon como se indica a continuación.

dnf install nmon

Monit

Monit es una solución de código abierto basada en web y en línea de comandos para supervisar los recursos del servidor, demonios, archivos, directorios, sistemas de archivos, etc.

Monit también tiene un widget genial.

YouTube vídeo

Es un software de monitorización ligero. Pero hay más que explorar aquí.

Monitorix

Una utilidad ligera de código abierto para monitorizar el servidor Linux. Monitorix tiene incorporado HTTP para que pueda comprobar la utilización y otras cosas en la web. Algunos de los otros informes de utilización incluyen:

  • Kernal/temperatura
  • Sistema de archivos y E/S
  • Tráfico de red
  • Apache/Correo/FTP/Nginx
  • MySQL/Varnish/Memcached

Monitorix también ofrece configuración de alertas para que pueda recibir notificaciones cuando las cosas no vayan bien. Será una buena elección cuando gestione servidores basados en la nube y busque una solución de monitorización proactiva.

Netdata

Netdata es una monitorización del rendimiento en tiempo real de los recursos del sistema, aplicaciones, servidores web, bases de datos, DNS, correo, sensores de hardware y mucho más. Es de código abierto y empezar a utilizarlo es fácil. Todos los datos se recogen, almacenan y transmiten para que usted los visualice de forma interactiva. Los datos se recogen cada segundo, por lo que nunca se perderá nada.

Amado por muchos líderes de la industria.

Así que a qué espera, pruébelo y tome el control de sus servidores Linux.

btop

btop es un práctico monitor de recursos totalmente interactivo con una bonita interfaz de usuario que le ayudará a gestionar los servidores Linux.

btop: monitor de recursos linux

Puede visualizar fácilmente los procesos en una vista de árbol, filtrar desde la lista de procesos y gestionar los acaparadores de recursos. btop también viene potenciado con un gráfico de autoescalado que muestra el uso de la red.

Además, también puede comprobar la velocidad del disco y la actividad completa de E/S.

Hay más cosas que puede experimentar en Linux, FreeBSD y macOS.

Conclusión

Espero que las herramientas anteriores le ayuden a visualizar la utilización del servidor en tiempo real para que pueda tomar las medidas necesarias. Si acaba de empezar como administrador de sistemas y desea obtener una formación práctica, eche un vistazo a este curso Udemy.

  • Chandan Kumar
    Autor
    Chandan Kumar es el fundador de Geekflare. Ha ayudado a millones de personas a destacar en el ámbito digital. Apasionado de la tecnología, su misión es explorar el mundo y ampliar el crecimiento de profesionales y empresas.
Gracias a nuestros patrocinadores
Más lecturas sobre Linux
Potencia tu negocio
Algunas de las herramientas y servicios que le ayudarán a hacer crecer su negocio.
  • Invicti utiliza el Proof-Based Scanning™ para verificar automáticamente las vulnerabilidades identificadas y generar resultados procesables en tan solo unas horas.
    Pruebe Invicti
  • Web scraping, proxy residencial, gestor de proxy, desbloqueador web, rastreador de motores de búsqueda, y todo lo que necesita para recopilar datos web.
    Pruebe Brightdata
  • Monday.com es un sistema operativo de trabajo todo en uno que te ayuda a gestionar proyectos, tareas, trabajo, ventas, CRM, operaciones, flujos de trabajo y mucho más.
    Prueba Monday
  • Intruder es un escáner de vulnerabilidades en línea que encuentra puntos débiles de ciberseguridad en su infraestructura, para evitar costosas violaciones de datos.
    Prueba Intruder