Limite el uso de la CPU de un proceso en Linux con la herramienta CPULimit


En una publicación anterior, hemos explicado CPUTool para limitar y controlar la utilización de la CPU de cualquier proceso en Linux. Permite a un administrador del sistema interrumpir la ejecución de un proceso (o grupo de procesos) si la carga de la CPU/sistema supera un umbral definido. Aquí, aprenderemos a usar una herramienta similar llamada cpulimit .

Cpulimit se utiliza para restringir el uso de la CPU de un proceso de la misma manera que CPUTool , sin embargo, ofrece más opciones de uso en comparación con su contraparte. Una diferencia importante es que cpulimit no administra la carga del sistema a diferencia de cputool .

Instale CPULimit para limitar el uso de la CPU de un proceso en Linux

CPULimit está disponible para instalar desde los repositorios de software predeterminados de Debian/Ubuntu y sus derivados utilizando una herramienta de administración de paquetes.

$ sudo apt install cpulimit

En RHEL/CentOS y Fedora , primero debe habilitar el repositorio de EPEL y luego instalar cpulimit como se muestra.

# yum install cpulimit

En esta subsección, explicaremos cómo funciona cpulimit. Primero, ejecutemos un comando (el mismo comando dd que vimos mientras cubríamos cputool) que debería resultar en un alto porcentaje de CPU, en segundo plano (tenga en cuenta que el proceso PID se imprime después de ejecutar el comando) .

$ dd if=/dev/zero of=/dev/null &

[1] 17918

A continuación, podemos usar las herramientas principales o de vista que dan salida al estado actual actualizado con frecuencia de un sistema Linux en ejecución, para observar el uso de la CPU del comando anterior.

$ top

Si observamos la salida anterior, podemos ver que el proceso dd está utilizando el mayor porcentaje de tiempo de CPU 100.0% .

Pero podemos limitar esto usando cputlimit de la siguiente manera. La opción --pid o -p se usa para especificar el PID y --limit o -l es Se utiliza para establecer un porcentaje de uso para un proceso.

El siguiente comando limitará el uso de dd ( PID 17918 ) al 50% de un núcleo de CPU.

$ sudo cpulimit --pid 17918 --limit 50  

Process 17918 detected

Una vez que ejecutamos cpulimit, podemos ver el uso actual de la CPU para el comando dd con la parte superior o las miradas. Desde la salida, el valor varía entre ( 51.5% -55.0% o ligeramente más allá).

Podemos acelerar su uso de la CPU por segunda vez de la siguiente manera, esta vez reduciendo el porcentaje de la siguiente manera:

$ sudo cpulimit --pid 17918 --limit 20 

Process 17918 detected

Como hicimos antes, podemos ejecutar top o miradas para ver el nuevo uso de la CPU para el proceso, que irá desde 20% -25.0% o un poco más allá de esto.

$ top

rojo

Para ejecutar cpulimit como un proceso en segundo plano, use el interruptor --background o -b , liberando el terminal.

$ sudo cpulimit --pid 17918 --limit 20 --background

Para especificar el número de núcleos de CPU presentes en el sistema, use el indicador --cpu o -c (esto normalmente se detecta automáticamente).

$ sudo cpulimit --pid 17918 --limit 20 --cpu 4

En lugar de limitar el uso de la CPU de un proceso, podemos eliminarlo con la opción --kill o -k . La señal predeterminada que se envía al proceso es SIGCONT , pero para enviar una señal diferente, use la marca --signal o -s

$ sudo cpulimit --pid 17918 --limit 20 --kill 

Para salir si no hay un proceso de destino adecuado, o en caso de que muera, incluya -z o --lazy de esta manera.

$ sudo cpulimit --pid 17918 --limit 20 --kill --lazy

Para obtener información adicional y opciones de uso, vea la página de manual de cpulimit.

$ man cpulimit

Consulte las siguientes guías útiles para encontrar información sobre la CPU y el monitoreo del rendimiento de la CPU/sistema.

  1. Find Top Running Processes by Highest Memory and CPU Usage in Linux
  2. Cpustat – Monitors CPU Utilization by Running Processes in Linux
  3. CoreFreq – A Powerful CPU Monitoring Tool for Linux Systems
  4. Find Top Running Processes by Highest Memory and CPU Usage in Linux
  5. 20 Command Line Tools to Monitor Linux Performance
  6. 13 Linux Performance Monitoring Tools – Part 2

En comparación, después de probar CPUTool y CPULimit , notamos que el primero ofrece una funcionalidad de "limitación de uso de CPU de proceso" más efectiva y confiable.

Esto es de acuerdo con el rango de porcentaje de uso de CPU observado después de ejecutar ambas herramientas en un proceso determinado. Pruebe ambas herramientas y agregue sus opiniones a este artículo utilizando el formulario de comentarios a continuación.