En este tutorial, te explicaremos diferentes herramientas que puedes usar para revisar el uso de la CPU en Linux y Unix.
Entender el uso de la CPU en términos simples involucra dos conceptos principales: métricas de la CPU e interpretación de la carga y el uso de la CPU.
Conceptos básicos de las métricas de la CPU:
- Uso de la CPU: Esto indica cuánto se está utilizando tu CPU en un momento dado. Es como el motor de un coche funcionando a cierta velocidad. Un porcentaje más alto significa que está trabajando más duro.
- Núcleos de la CPU: Las CPUs modernas tienen múltiples núcleos, como tener varios motores. Más núcleos pueden manejar más tareas simultáneamente.
Interpretación de la carga y el uso de la CPU:
- Carga de la CPU: Esto te indica cuántos procesos están esperando para usar la CPU. Imagina una cola en una cafetería; una cola más larga significa más espera.
- Uso a lo largo del tiempo: Monitorear el uso de la CPU a lo largo del tiempo ayuda a identificar cuándo tu computadora está trabajando más duro. Es como darte cuenta de cuándo la cafetería está más ocupada.
En resumen, el uso de la CPU se trata de cuánto está trabajando tu CPU (uso) y cuántas tareas están esperando para usarla (carga). Entender esto te ayuda a evaluar el rendimiento y la eficiencia de tu computadora.
Diferentes herramientas para verificar el uso de la CPU en Linux
#1. Usando el comando “top”
Usar el comando top en Linux es un método ampliamente adoptado para monitorear el uso de la CPU. Este comando top proporciona datos en tiempo real sobre el uso de los recursos del sistema, incluyendo el uso de la CPU. Aquí tienes una guía paso a paso para usar top para verificar el uso de la CPU:
- Abre la Terminal: Inicia la terminal en tu sistema Linux.
- Ejecuta el comando: Escribe
topy presiona Enter. - Interpreta la salida:
- El comando muestra una lista dinámica de procesos.
- La columna “%CPU” muestra el porcentaje de uso de la CPU para cada proceso.
- La línea “%CPU(s)” en la parte superior indica el uso general de la CPU por todos los procesos.
- Ordenar procesos:
- Por defecto, los procesos se ordenan en orden descendente de uso de la CPU. El proceso en la parte superior utiliza la mayoría de los recursos de la CPU.
- Para ordenar específicamente los procesos por uso de la CPU, presiona Mayúsculas + P. Esto reorganizará los procesos para que aquellos que consumen más CPU se muestren primero, proporcionando una vista clara de las tareas que más recursos consumen.
- Saliendo de
top: Para salir, presiona la tecla “q”. - Funciones interactivas de
top:- Presiona “k” para enviar señales, como terminar o matar, a un proceso.
- Presiona “1” para ver el uso de la CPU de cada núcleo individual (para sistemas con múltiples núcleos).
- Presiona “f” para personalizar las columnas mostradas.
#2. Usando el comando “htop”
Usar el comando htop es otra forma efectiva de monitorear el uso de la CPU en Linux. Aquí tienes una guía sobre cómo usar htop:
- Abrir Terminal: Abre tu interfaz de terminal.
- Instalar
htop(si es necesario):- Para distribuciones basadas en Debian/Ubuntu:
sudo apt-get install htop - Para distribuciones basadas en Red Hat/CentOS:
sudo yum install htop - Para Fedora:
sudo dnf install htop - Para Arch Linux:
sudo pacman -S htop
- Para distribuciones basadas en Debian/Ubuntu:
- Ejecutar
htop: Simplemente escribehtopy presiona Enter. - Descripción general de la interfaz:
- El uso de la CPU se muestra en la parte superior con barras individuales para cada núcleo.
- Abajo hay una lista de procesos con su respectivo uso de CPU y memoria.
- Ordenar procesos por uso de CPU:
- Presiona F6 para abrir el menú de ordenación.
- Usa las flechas para seleccionar %CPU, luego Enter para ordenar por uso de CPU.
- Funciones interactivas:
- Para matar un proceso, selecciónalo con las flechas y presiona F9.
- Para buscar o filtrar procesos, presiona F3 y escribe el nombre del proceso.
- Saliendo de
htop: Presiona F10 o q para salir.
#3. Usando el comando “vmstat”
El comando vmstat (Estadísticas de memoria virtual) en Linux se utiliza para monitorear el rendimiento del sistema, incluyendo el uso de la CPU. Aquí tienes una guía sobre cómo usar vmstat:
- Abrir Terminal: Inicia tu ventana de terminal.
- Comando básico: Escribe
vmstatpara mostrar un resumen de las estadísticas clave del sistema. - Usando intervalos:
vmstat [intervalo] [cuenta]: Actualiza las estadísticas cada [intervalo] segundos, [cuenta] veces. Por ejemplo,vmstat 5 10actualizará cada 5 segundos, 10 veces. - Métricas clave:
- Campos de la CPU: us (tiempo de usuario), sy (tiempo del sistema), id (tiempo inactivo).
- Campos de memoria: swpd (espacio de intercambio utilizado), free (memoria libre).
- Campos de intercambio: si (memoria intercambiada), so (memoria intercambiada).
- Campos de E/S: bi (bloques de entrada), bo (bloques de salida).
- Opciones adicionales:
- -a: Mostrar memoria activa/inactiva.
- -d: Mostrar estadísticas de disco.
- -s: Proporcionar una tabla de contadores de eventos y estadísticas de memoria.
- Interpretando la salida:
- La primera fila de la salida muestra los promedios desde el último reinicio.
- Las filas siguientes muestran datos en tiempo real basados en el intervalo especificado.
- Deteniendo
vmstat: Si se ejecuta con intervalos, deténlo con Ctrl+C.
#4. Usando el comando “mpstat”
El comando mpstat en Linux se utiliza para monitorear el uso de la CPU en diferentes procesadores y es una herramienta versátil, ideal para el monitoreo detallado de la CPU, especialmente en sistemas multinúcleo. Aquí te explicamos cómo usarlo:
- Abrir Terminal: Inicia la terminal desde tu entorno Linux.
- Uso básico: Simplemente escribe
mpstaty presiona Enter. Esto proporciona una visión general del uso de la CPU en todos los procesadores. La salida muestra varias métricas por CPU, incluyendo el tiempo de usuario (%usr), el tiempo del sistema (%sys) y el tiempo inactivo (%idle). - Usando intervalos: Para el monitoreo en tiempo real, usa
mpstatseguido de un intervalo de tiempo en segundos. Por ejemplo,mpstat 2actualizará los datos de uso de la CPU cada 2 segundos. - Monitoreo de CPUs específicas: Usa
mpstat -P ALLpara ver las estadísticas de cada núcleo de CPU individual. Para monitorear un núcleo específico, usampstat -Pseguido del número de núcleo, comompstat -P 1para la CPU 1. - Opciones adicionales:
mpstat -umuestra el uso de la CPU.mpstat -Vmuestra la versión dempstat.
- Interpretando los datos:
- %usr: Porcentaje de utilización de la CPU en modo usuario.
- %sys: Porcentaje de utilización de la CPU en modo sistema.
- %idle: Porcentaje de tiempo que la CPU está inactiva.
- Saliendo de
mpstat: Para detener el comando cuando se ejecuta con intervalos, usa Ctrl+C.
#5. Usando el comando “sar”
El comando sar (System Activity Reporter) en Linux es una herramienta potente utilizada principalmente para monitorear el rendimiento del sistema, incluyendo el uso de la CPU. Aquí tienes una explicación detallada centrándose en el uso de la CPU:
- Abrir Terminal: Comienza iniciando tu terminal.
- Instalación: Si no está instalado, puedes instalar
sarusando el gestor de paquetes de tu distribución, comosudo apt install sysstaten Ubuntu. - Monitoreo básico de la CPU: Ejecuta
sar -upara mostrar la actividad de la CPU. La salida incluye varias métricas clave:- %user: Tiempo que la CPU dedicó a ejecutar procesos de usuario.
- %nice: Tiempo que la CPU dedicó a ejecutar procesos de usuario de baja prioridad.
- %system: Tiempo que la CPU dedicó a los procesos del sistema (núcleo).
- %iowait: Tiempo que la CPU estuvo inactiva durante el cual el sistema tenía solicitudes de E/S de disco pendientes.
- %idle: Tiempo que la CPU estuvo inactiva y el sistema no tenía ninguna solicitud de E/S de disco pendiente.
- Monitoreo en tiempo real con intervalos:
sar -u [intervalo] [cuenta]proporciona actualizaciones continuas. Por ejemplo,sar -u 2 3actualiza las estadísticas de la CPU cada 2 segundos, tres veces en total. - Datos históricos:
saralmacena datos históricos en/var/log/sysstat/. Usasar -u -f /var/log/sysstat/saXXpara ver los datos de un día específico (XX es el número de archivo). - Opciones avanzadas:
sar -P ALLmuestra estadísticas por procesador.sar -u ALLproporciona estadísticas de uso de la CPU extendidas.
- Analizando la salida: Entender estas métricas ayuda a identificar problemas de rendimiento de la CPU. Por ejemplo, un %iowait alto podría indicar cuellos de botella relacionados con el disco.
- Informes de programación:
sarse puede programar para que se ejecute a intervalos regulares usando trabajos cron, proporcionando un monitoreo continuo. - Exportando datos: Los datos de
sarse pueden exportar para un análisis o informes posteriores.
Nota: Asegúrate de que la recolección esté habilitada
sudo nano /etc/default/sysstat
##Cambia esta línea:
ENABLED="false"Inicia y habilita el servicio:
sudo systemctl enable sysstat
sudo systemctl start sysstat#6. Usando el comando “iostat”
El comando iostat en Linux, comúnmente usado para monitorear la carga de dispositivos de entrada/salida del sistema, también puede proporcionar información valiosa sobre el uso de la CPU. Aquí tienes una explicación detallada:
- Abrir Terminal: Comienza abriendo tu terminal.
- Ejecutando el comando básico: Ejecuta
iostatpara obtener un informe que incluye estadísticas de la CPU. La sección de la CPU del informe muestra los porcentajes de uso en diferentes modos: %user, %nice, %system, %iowait e %idle. - Usando intervalos para el monitoreo continuo:
iostat [intervalo] [cuenta]actualiza el informe a [intervalo] segundos durante [cuenta] veces. Por ejemplo,iostat 5 3da un informe cada 5 segundos, tres veces. - Entendiendo las métricas de la CPU:
- %user: Porcentaje de utilización de la CPU que ocurrió mientras se ejecutaba a nivel de usuario.
- %nice: Porcentaje de utilización de la CPU que ocurrió mientras se ejecutaba a nivel de usuario con prioridad agradable.
- %system: Porcentaje de utilización de la CPU que ocurrió mientras se ejecutaba a nivel del sistema (núcleo).
- %iowait: Porcentaje de tiempo que la CPU o las CPUs estuvieron inactivas durante el cual el sistema tenía una solicitud de E/S de disco pendiente.
- %idle: Tiempo en que la CPU o las CPUs estuvieron inactivas y el sistema no tenía ninguna solicitud de E/S de disco pendiente.
- Instalación:
iostates parte del paquetesysstat. Instálalo si no está presente, por ejemplo,sudo apt-get install sysstaten Debian/Ubuntu. - Uso avanzado:
iostat -cmuestra solo las estadísticas de la CPU.iostat -dproporciona estadísticas de utilización del dispositivo, útiles para correlacionar la actividad de la CPU con el uso del disco.
- Analizando y exportando datos: El monitoreo regular con
iostatayuda a comprender cómo la carga de E/S afecta el rendimiento de la CPU. La salida se puede redirigir a un archivo para su posterior análisis. - Uso en la optimización del rendimiento: Al analizar la salida de
iostat, puedes identificar si una alta espera de E/S está causando problemas de rendimiento de la CPU.
#7. Usando el comando “ps”
El comando ps en Linux es una herramienta potente para monitorear los procesos del sistema, y cuando se usa con opciones específicas, puede ser una forma eficiente de monitorear el uso de la CPU. Usando el siguiente comando, puedes extraer información detallada sobre los procesos que consumen la mayoría de los recursos de la CPU.
ps -eo pid,ppid,%cpu,cmd --sort=-%cpu | head -10ps: El comando principal para mostrar información sobre los procesos activos.-eo pid,ppid,%cpu,cmd: Estas opciones personalizan la salida:pid: ID del proceso.ppid: ID del proceso principal, indicando el proceso que generó este proceso.%cpu: Porcentaje de CPU utilizado por el proceso.cmd: Línea de comandos del proceso.
--sort=-%cpu: Ordena la salida por uso de CPU en orden descendente.| head -10: Canaliza la salida al comandoheadpara mostrar solo los 10 procesos principales.
Resumen
En Linux, monitorear el uso de la CPU es crucial para el rendimiento del sistema y se puede hacer eficientemente usando comandos como top, htop, vmstat, mpstat, sar, iostat y ps.
El comando top ofrece métricas del sistema en tiempo real, fácilmente ordenables por uso de CPU, mientras que htop proporciona una interfaz más amigable con capacidades similares. vmstat es valioso para una vista instantánea del rendimiento del sistema, incluyendo la carga de la CPU y el uso de la memoria. mpstat ofrece estadísticas detalladas de la CPU, especialmente útiles en entornos multinúcleo.
El comando sar es esencial para el monitoreo de la CPU a largo plazo, proporcionando informes completos. iostat es experto en mostrar cómo las operaciones de E/S afectan el rendimiento de la CPU.
Por último, el comando ps, particularmente con banderas específicas, puede identificar los procesos de alto uso de CPU, ayudando en el diagnóstico rápido y la gestión eficaz de los recursos. Estas herramientas colectivamente forman un marco robusto para que los administradores de sistemas Linux monitoreen, analicen y optimicen el uso de la CPU.
Pablo Jover
Me parece una explicación sencilla y fácil de seguir. Creo que es excelente la calidad tanto de la interface de la web como del contenido que presenta. Enhorabuena y gracias por darnos esta formación de manera tan amena.
Mateo TuxMaster
Es un gusto 🙂 Gracias por visitarnos Pablo 🙂