Introducción a cpulimit
cpulimit es una herramienta ligera diseñada para restringir el uso de CPU de procesos en sistemas Linux. A diferencia de soluciones más complejas basadas en cgroups, cpulimit actúa como un demonio de usuario que monitoriza el consumo de ciclos de CPU de un proceso y lo detiene periódicamente para mantenerlo dentro de un porcentaje establecido.
1. Instalación
La instalación de cpulimit es sencilla y está disponible en la mayoría de repositorios oficiales:
- Debian/Ubuntu:
sudo apt-get update sudo apt-get install cpulimit
- CentOS/RHEL:
sudo yum install epel-release sudo yum install cpulimit
- macOS (Homebrew):
brew install cpulimit
- Compilación manual: visite el repositorio oficial en
GitHub para instrucciones.
2. Uso básico
cpulimit cuenta con dos modos de operación principales:
- Por PID: limitar un proceso ya en ejecución.
- Por comando: iniciar un programa y limitarlo desde el arranque.
2.1 Limitar un proceso existente (por PID)
cpulimit -p 1234 -l 50
Donde -p 1234 es el PID del proceso y -l 50 el porcentaje máximo de CPU.
2.2 Ejecutar y limitar un comando
cpulimit -l 30 -- /usr/bin/ffmpeg -i video.mp4 -c:v libx264 salida.mp4
El doble guión — separa las opciones de cpulimit del comando a limitar.
3. Opciones avanzadas
- –background o -b: ejecuta cpulimit en segundo plano.
- –verbose o -v: informa en tiempo real el uso de CPU y pausas.
- –path ltprogramagt: busca el proceso por nombre en lugar de por PID.
- –signal ltSIGNALgt: especifica la señal para pausar/reanudar (por defecto SIGSTOP/SIGCONT).
- –help o -h: muestra la ayuda completa.
4. Ejemplos prácticos
Escenario | Comando | Descripción |
---|---|---|
Compilación intensiva | cpulimit -l 40 -- make -j8 |
Limita al 40% para no bloquear la máquina. |
Renderizado multimedia | cpulimit -p (pgrep ffmpeg) -l 60 |
Asegura que el editor gráfico sigue ágil. |
Servicio de red no crítico | sudo cpulimit -b -l 20 -z -p 2345 |
Ejecuta en background y finaliza si el proceso muere (-z). |
5. Limitaciones y alternativas
cpulimit es ideal para casos sencillos, pero presenta ciertas limitaciones:
- No funciona a nivel de subprocesos de un mismo proceso (hilos).
- Depende de señales, por lo que puede no ser tan preciso en cargas muy cortas.
- No gestiona prioridades ni jerarquías de usuarios.
Si necesidad de control más fino o agrupado, considere cgroups (a nivel kernel) o herramientas como systemd slices.
6. Más información
- Manpage oficial: linux.die.net/man/1/cpulimit
- Repositorio GitHub: opsengine/cpulimit
Conclusión
cpulimit representa una solución ligera y efectiva para moderar el uso de CPU de procesos individuales sin necesidad de configuraciones complejas. Es especialmente útil en entornos de escritorio o servidores ligeros donde no deseamos instalar o mantener infraestructuras de cgroups. Gracias a su sencilla sintaxis y flexibilidad, es una herramienta que todo administrador o usuario avanzado de Linux debería conocer y llevar siempre a mano.
Leave a Reply