¿Has experimentado alguna vez la situación en la que abres una aplicación en particular (como Firefox) y hace que todo el sistema se detenga? Si usted está ejecutando un servidor web, la última cosa que usted quiere ver es tener una aplicación se bloquea todo el sistema y traer todos los sitios web hacia abajo.

Cpulimit es una aplicación para Linux que puede limitar el uso de la CPU de un proceso. Es útil si quieres restringir una aplicación en particular para que no ocupe demasiados recursos de la CPU y, por lo tanto, se cuelgue el sistema. También puede ser útil cuando se necesita ejecutar varios programas intensivos simultáneamente.

Nota: cpulimit debería funcionar para todas las distribuciones de Linux. En este tutorial, usaremos Ubuntu como 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:
sudoapt-get install cpulimit

Uso

Para restringir un proceso, utilice el comando

sudo cpulimit -p PID -l CPU%

El PID es el ID del proceso de la aplicación que se está ejecutando y CPU% es el porcentaje (0-100, sólo números) de recursos de CPU permitidos para la aplicación. Puede obtener el PID desde Sistema -> Administración -> Monitor del Sistema

.

cpulimit-system-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é ocurre cuando limitamos el uso de la CPU al 20%.

cpulimit-start-process

cpulimit-system-monitor-after

El % de CPU cae instantáneamente por debajo del 20% y no vuelve a cruzar la marca del 20%.

Extendiendo cpulimit – Automatizando todo el proceso

Cpulimit es útil cuando te encuentras con una aplicación que ocupa muchos recursos de la CPU, o necesitas llevar a cabo un trabajo por lotes. Además, también puedes configurarlo para monitorizar el sistema en busca de cualquier aplicación que se comporte mal. Esto es especialmente útil en una configuración de servidor.

abcuser

del Foro de Ubuntu ha creado un gran script que automatiza la monitorización de tu sistema y restringe cualquier proceso que exceda un límite de CPU preestablecido. El script también permite establecer una lista negra/blanca para aplicaciones específicas.

Antes de empezar, asegúrate de que tienes cpulimit y gawk

instalados.
sudoapt-get install cpulimit gawk

Descargue los scripts aquí. Extrae el archivo tar a tu carpeta de inicio. Debería tener dos archivos dentro de la carpeta cpulimit: cpulimit_daemon.sh y cpulimit

.

Abra el archivo cpulimit_daemon

.sh en su editor de texto (gEdit) y cambie lo siguiente:

cpulimit-edit-daemon

CPU_LIMIT

: Este es el máximo de recursos de CPU disponibles para cada aplicación. El valor por defecto es del 20%.

DAEMON_INTERVAL

: Este es el intervalo para que el script compruebe el sistema. El valor por defecto es de 3 segundos.

BLACK_PROCESS_LIST

: Contiene la lista de elementos que se quieren monitorizar específicamente. Puede utilizar el delimitador “|” para incluir varios procesos. Por ejemplo, “mysql|firefox|gedit”.

LISTA_DE_PROCESOS_BLANCOS

: Contiene la lista de elementos que NO QUIERES monitorizar. Puede utilizar el delimitador “|” para incluir varios procesos. Por ejemplo, “mysql|firefox|gedit”.

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

Configuración

Copie el archivo cpulimit_daemon.sh

en la carpeta /usr/bin/
sudocp ~/cpulimit/cpulimit_daemon.sh /usr/binsudochmod700/usr/bin/cpulimit_daemon.sh

Copie el archivo cpulimit

en la carpeta /etc/init.d/, establezca los permisos necesarios y haga que se ejecute durante el statup.
sudocp ~/cpulimit/cpulimit /etc/init.
d/sudochown root:root /etc/init.d/cpulimitsudochmod +x /etc/init.d/cpulimitsudo update-rc.d cpulimit defaults

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

Puede abrir un terminal y escribir

sudo service cpulimit status

para comprobar 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

Desinstalación de

Para desinstalar, esto es lo que tienes que hacer:

1. Detener el demonio cpulimit

sudo service cpulimit stop # Detener el demonio cpulimit y todos los procesos de cpulimit

2. Elimine el demonio del procedimiento de arranque

sudo update-rc.d -f cpulimit remove # Eliminar los enlaces simbólicos

3. Eliminar el procedimiento de arranque

sudorm/etc/init.d/cpulimit # Eliminar el script de arranque de cpulimit

4. Eliminar el demonio cpulimit

sudorm/usr/bin/cpulimit_daemon.sh # Eliminar el script del demonio cpulimit

5. Desinstalar el programa cpulimit

sudoapt-get remove cpulimit

6. Opcionalmente, desinstalar el programa gawk

sudoapt-get removegawk