Cómo limitar el uso de CPU de un proceso en Linux con cpulimit

Cuando trabaja en un sistema Linux, numerosos procesos se ejecutan en segundo plano. Estos procesos consumen recursos del sistema en forma de uso y tiempo de la CPU.

Si bien en la mayoría de las situaciones, el sistema operativo administra estos procesos automáticamente, a veces un proceso que consume muchos recursos puede sobreutilizar la CPU debido a un procesamiento pesado o un desarrollo deficiente. La respuesta suele ser matar el proceso directamente o limitar el uso de la CPU a un cierto límite.

Afortunadamente en Linux, puede limitar el uso de la CPU de un proceso mediante una utilidad de línea de comandos llamada cpulimit .

Cómo identificar un proceso con un uso elevado de CPU

Antes de poder limitar el porcentaje de recursos del sistema que puede usar un proceso, debe encontrar el ID de ese proceso en particular. Un ID de proceso (o PID) es un número único que su sistema usa para identificar un proceso.

En Linux, hay varias formas de obtener información detallada relacionada con los procesos. Puede usar el comando top para obtener una lista de los procesos que se están ejecutando actualmente en su sistema.

 top

Producción:

La columna % CPU muestra el porcentaje de CPU que está usando el proceso en particular. Si su computadora está tratando de procesar más datos de los que puede, entonces algún proceso específico tendrá un uso de CPU del 100%. Consulte la tabla para ver si hay algún proceso con un uso elevado de la CPU.

Una vez que haya encontrado el proceso con un alto uso de CPU, anote su PID. La identificación del proceso es importante para limitar el uso del proceso.

Limitar el uso de CPU con cpulimit

Como se mencionó anteriormente, cpulimit es una utilidad de línea de comandos que agrega un límite a la cantidad de recursos del sistema utilizados por un proceso específico en su computadora. Dado que la mayoría de las distribuciones de Linux no se envían con cpulimit preinstalado, deberá instalarlo manualmente.

Puede instalar el paquete en Ubuntu y otras distribuciones basadas en Debian de la siguiente manera:

 sudo apt install cpulimit

En distribuciones basadas en Arch como Manjaro Linux:

 sudo pacman -S cpulimit

Cpulimit está disponible en el repositorio EPEL (Paquetes adicionales para Enterprise Linux). Por lo tanto, para instalarlo en distribuciones CentOS y RHEL, primero deberá habilitar el repositorio EPEL.

 yum install epel-release
yum install cpulimit

Sintaxis básica

Para usar cpulimit, deberá pasar uno de los siguientes tres argumentos con el comando:

  1. -p o –pid : el ID de proceso de un proceso
  2. -e o –exe : el nombre del archivo ejecutable
  3. -p o –path : ruta absoluta del archivo ejecutable

La sintaxis básica del comando es:

 cpulimit -p pid
cpulimit -e executablename
cpulimit -p /path-to-executable

Limitar el uso de CPU de un proceso

Puede usar el indicador –limit o -l de la utilidad cpulimit para agregar un límite a los recursos que puede usar un proceso. Para forzar que un proceso con PID 81550 use solo el 50% de la CPU:

 sudo cpulimit -p 81550 --limit 50

Aquí, cpulimit restringirá el uso de CPU del proceso mientras se esté ejecutando. Si detiene la ejecución de cpulimit, el uso de CPU de ese proceso específico volverá a la normalidad.

Una gran solución para evitar este problema es ejecutar cpulimit en segundo plano. Puede agregar la marca –background o -b con el comando para enviar el comando al fondo .

 sudo cpulimit -p 81550 --limit 50 --background

Si la opción –background no funciona, puede agregar un Ampersand ( & ) después del comando para enviarlo al fondo.

 sudo cpulimit -p 81550 --limit 50 &

Use el comando superior para verificar si el comando mencionado anteriormente funciona.

Como habrás notado, el uso de CPU del comando dd se redujo al 48,8%.

Mata un proceso usando su PID

En lugar de limitar el uso de la CPU, puede cerrar completamente el proceso matándolo con el indicador –kill .

 sudo cpulimit -p 81550 --limit 50 --kill

Gestión de procesos más inteligente en Linux

Cpulimit es una gran utilidad si a menudo se encuentra con procesos con un alto uso de CPU. Los usuarios de GNOME que no se sienten cómodos con la línea de comandos también pueden usar System Monitor para administrar procesos en su sistema.

Además de utilizar herramientas como cpulimit, también puede reducir la prioridad en Linux para proporcionar menos recursos a un proceso específico. Los comandos nice y renice son un salvavidas cuando se trata de administrar la prioridad de procesos en Linux.