CPUTool - Limite y controle la utilización de la CPU de cualquier proceso en Linux


Una de las áreas críticas en la supervisión del rendimiento de Linux debe ser el uso de la CPU y la carga del sistema. Existen varias herramientas de monitoreo de rendimiento de Linux para controlar cómo se desarrollan las cosas en un sistema.

Algunas de estas herramientas simplemente generan el estado y las estadísticas del sistema, mientras que otras proporcionan un medio para administrar el rendimiento del sistema. Una de estas herramientas se llama CPUTool .

CPUTool es una herramienta de línea de comandos simple pero potente para limitar y controlar la utilización de cualquier proceso por parte de la CPU y permite la interrupción de la ejecución del proceso si la carga del sistema supera un umbral definido.

Para limitar el uso de la CPU, cputool envía las señales SIGSTOP y SIGCONT a los procesos, lo que está determinado por la carga del sistema. Se basa en el pseudo-sistema de archivos/proc para leer PIDs y sus medidas de uso de la CPU.

Puede utilizarse para limitar el uso de la CPU o la carga del sistema influenciada por un solo proceso o un grupo de procesos a un límite dado y/o suspender los procesos si la carga del sistema supera un umbral.

Instale CPUTool para limitar el uso de la CPU y el promedio de carga

Un CPUTool solo está disponible para instalar en Debian/Ubuntu y sus derivados de los repositorios predeterminados del sistema utilizando la herramienta de administración de paquetes.

$ sudo apt install cputool

Ahora veamos cómo funciona realmente cputool. Para demostrarlo todo, ejecutaremos un comando dd que debe resultar en un alto porcentaje de CPU, en el fondo y mostrar su PID.

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

Para monitorear el uso de la CPU, podemos usar las herramientas principales o de vista que nos permiten ver un estado actualizado en tiempo real de los procesos de un sistema Linux en ejecución:

# top

En la salida anterior, podemos ver que dd command tiene el mayor porcentaje de tiempo de CPU 99.7%) Ahora podemos limitar esto usando cputool como se muestra a continuación.

El indicador --cpu-limit o -c se usa para establecer un porcentaje de uso para un proceso o grupo de procesos y -p para especificar un PID. El siguiente comando limitará el comando dd (PID 8275) al uso de 50% de un núcleo de CPU:

# cputool --cpu-limit 50 -p 8275 

Después de ejecutar cputool, podemos verificar el nuevo uso de la CPU para el proceso (PID 8275) una vez más. Ahora, el uso de la CPU para el proceso de dd debe ir desde ( 49.0% -52.0% ).

# top

Para limitar aún más el uso de la CPU de dd a 20% , podemos ejecutar cputool por segunda vez:

# cputool --cpu-limit 20 -p 8275 

A continuación, compruebe inmediatamente el uso de herramientas como top o miradas como esta (el uso de la CPU para dd ahora debe ir desde 19.0% -22.0% o un poco más allá de esto):

# top

Tenga en cuenta que el shell no espera ninguna entrada del usuario mientras se ejecuta cputool; por lo tanto, deja de responder. Para matarlo (esto terminará la operación de limitación de uso de la CPU), presione Ctrl + C .

Es importante destacar que, para especificar un grupo de procesos (un programa con varias instancias en ejecución, cada uno con un PID distinto), por ejemplo, el servidor web HTTP:

# pidof apache2
9592 3643 3642 3641 3640 3638 3637 1780

Use la marca -P de esta manera:

# cputool --cpu-limit 20 -P 1780

La opción -l se usa para especificar la carga máxima que puede soportar el sistema para que el proceso o el grupo de procesos continúen ejecutándose. Podemos usar un valor fraccionario (por ejemplo, 2.5 ).

El siguiente ejemplo significa ejecutar rsync para una copia de seguridad local solo cuando la carga del sistema no exceda de 3.5 :

# cputool --load-limit 3.5 --rsync -av /home/tecmint /backup/`date +%Y-%m-%d`/

Para más información y uso, vea la página de manual de CPUTool:

# man cputool

Consulte las siguientes guías útiles para encontrar información sobre la CPU y la supervisión del rendimiento de la CPU:

  1. 9 Useful Commands to Get CPU Information on 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

En conclusión, CPUTool realmente es útil para la administración del rendimiento de Linux. Comparta sus pensamientos sobre este artículo a través del formulario de comentarios a continuación.