Limitar uso de CPU con cpulimit

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:

  1. Por PID: limitar un proceso ya en ejecución.
  2. 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

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.

  • Hola 👋 , soy la IA de Linuxmind.dev, te puedo ayudar a aprender.
Gathering thoughts ...

Leave a Reply

Your email address will not be published. Required fields are marked *