Cómo limitar el uso de la CPU de cualquier proceso en Linux

Cómo limitar el uso de la CPU de cualquier proceso en Linux

¿Alguna vez ha experimentado la situación en la que abre una aplicación en particular (como Firefox) y hace que todo el sistema se detenga? Si está ejecutando un servidor web, lo último que desea ver es que una aplicación bloquee todo el sistema y derribe todos los sitios web.

Cpulímite es una aplicación para Linux que puede limitar el uso de la CPU de un proceso. Es útil si desea restringir que una aplicación en particular consuma demasiados recursos de CPU y, por lo tanto, bloquee el sistema. Esto también puede ser útil cuando necesita ejecutar varios programas intensivos simultáneamente.

Nota: cpulimit debería funcionar para todas las distribuciones de Linux. En este tutorial, usaremos Ubuntu para ilustración.

Instalación

En Ubuntu, puede instalar cpulimit a través del Centro de software de Ubuntu, haga clic aquí para instalar o escriba el siguiente comando en la terminal:

sudo apt-get install cpulimit

Uso

Para restringir un proceso, use el comando

sudo cpulimit -p PID -l CPU%

los PID es el ID de proceso de la aplicación en ejecución y UPC% es el porcentaje (0-100, solo número) de recursos de CPU permitidos para la aplicación. Puede obtener el PID desde Sistema -> Administración -> Monitor de sistema.

cpulimit-sistema-monitor

En la captura de pantalla anterior, puede ver que la aplicación Swiftfox (una variante de Firefox) ocupa el 68 % de los recursos de la CPU antes de que se establezca el límite de la CPU. Veamos qué sucede cuando limitamos el uso de la CPU al 20%.

Proceso de inicio de cpulimit

cpulimit-sistema-monitor-después

El % de CPU cayó instantáneamente por debajo del 20 % y nunca volvió a cruzar la marca del 20 %.

Ampliación de cpulimit: automatización de todo el proceso

Cpulimit es útil cuando se encuentra con una aplicación que consume muchos recursos de la CPU o necesita realizar un trabajo por lotes. Además, también puede configurarlo para monitorear el sistema en busca de cualquier aplicación que se comporte mal. Esto es especialmente útil en la configuración de un servidor.

abusador de Foro de Ubuntu ha creado un excelente script que automatiza el monitoreo de su sistema y restringe cualquier proceso que exceda un límite de CPU preestablecido. El script también le permite configurar la lista negra/lista blanca para aplicaciones específicas.

Antes de comenzar, asegúrese de tener cpulimit y gawk instalados.

sudo apt-get install cpulimit gawk

Descarga los guiones aquí. Extraiga el archivo tar a su carpeta de inicio. Deberías tener dos archivos dentro de la carpeta cpulimit: cpulimit_daemon.sh y límite de cpu.

Abra el archivo cpulimit_daemon.sh en su editor de texto (gEdit) y cambie lo siguiente:

cpulimit-editar-daemon

CPU_LIMIT: Estos son los recursos de CPU máximos disponibles para cada aplicación. El valor predeterminado es 20%.

DAEMON_INTERVALO: Este es el intervalo para que el script verifique el sistema. El valor predeterminado se establece en 3 segundos.

BLACK_PROCESS_LIST: Esto contiene la lista de elementos que específicamente desea monitorear. Puedes usar el “|” delimitador para incluir varios procesos. Por ejemplo, «mysql|firefox|gedit“.

WHITE_PROCESSES_LIST: Esto contiene la lista de elementos que NO DESEA monitorear. Puedes usar el “|” delimitador para incluir varios procesos. Por ejemplo, «mysql|firefox|gedit“.

Nota: Una o ambas variables BLACK_PROCESSES_LIST y WHITE_PROCESSES_LIST deben estar vacías. No puede tener una lista negra y una lista blanca al mismo tiempo.

configurando

Copie el archivo cpulimit_daemon.sh en la carpeta /usr/bin/

sudo cp ~/cpulimit/cpulimit_daemon.sh /usr/bin
sudo chmod 700 /usr/bin/cpulimit_daemon.sh

Copie el archivo cpulimit en /etc/init.d/folder, establezca el permiso necesario y haga que se ejecute durante la instalación.

sudo cp ~/cpulimit/cpulimit /etc/init.d/
sudo chown root:root /etc/init.d/cpulimit
sudo chmod +x /etc/init.d/cpulimit
sudo update-rc.d cpulimit defaults

Ahora, reinicie su sistema. El demonio cpulimit debería iniciarse automáticamente.

Puedes abrir una terminal y escribir:

sudo service cpulimit status

para verificar si el demonio cpulimit se está ejecutando. Si no se está ejecutando, inícielo con el comando

sudo service cpulimit start

Alternativamente, deténgalo con:

sudo service cpulimit stop

Desinstalando

Para desinstalar, esto es lo que debe hacer:

1. Detener el demonio cpulimit

sudo service cpulimit stop  # Stop cpulimit daemon and all cpulimited processes

2. Eliminar el demonio del procedimiento de arranque

sudo update-rc.d -f cpulimit remove    # Remove symbolic links

3. Eliminar el procedimiento de arranque

sudo rm /etc/init.d/cpulimit           # Delete cpulimit boot-up script

4. Eliminar el demonio cpulimit

sudo rm /usr/bin/cpulimit_daemon.sh    # Delete cpulimit daemon script

5. Desinstalar el programa cpulimit

sudo apt-get remove cpulimit

Opcionalmente, desinstale el programa gawk

Para obtener más información, consulte el Foro de Ubuntu para más detalles.

Crédito del código: abusador de Foro de Ubuntu

Experto Geek - Tu Guía en Tendencias Tecnológicas