¿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
.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%.
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: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