Búsqueda de sitios web

CPUTool: limite y controle la utilización de la CPU de cualquier proceso en Linux


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

Varias de estas herramientas simplemente generan el estado/las estadísticas del sistema, mientras que otras le brindan medios para administrar el rendimiento del sistema. Una de esas herramientas se llama CPUTool.

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

¿Cómo funciona CPUTool?

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

Puede usarse 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 determinado y/o suspender procesos si la carga del sistema supera un umbral.

Lectura sugerida: Comprender los promedios de carga de Linux y monitorear el rendimiento de Linux

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

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

sudo apt install cputool

Limitar el uso de CPU de proceso con CUPTool

Ahora veamos cómo funciona realmente cputool. Para demostrarlo todo, ejecutaremos un comando dd que debería generar un alto porcentaje de CPU, en segundo plano y mostrar su PID.

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

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

top

En el resultado anterior, podemos ver que el comando dd 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 50% uso de un núcleo de CPU:

cputool --cpu-limit 50 -p 8275 

Después de ejecutar cputool, podemos verificar una vez más el nuevo uso de CPU para el proceso (PID 8275). Ahora el uso de CPU para el proceso dd debería oscilar entre (49,0%-52,0%).

top

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

cputool --cpu-limit 20 -p 8275 

Luego verifique inmediatamente usando herramientas como top o vistazos como este (el uso de CPU para dd ahora debería oscilar entre 19.0%-22.0% o un poco más):

top

Tenga en cuenta que el shell no espera ninguna entrada del usuario mientras cputool se está ejecutando; por lo tanto deja de responder. Para eliminarlo (esto finalizará 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 una con un PID distinto), por ejemplo, un servidor web HTTP:

pidof apache2
9592 3643 3642 3641 3640 3638 3637 1780

Utilice el indicador -P de esta manera:

cputool --cpu-limit 20 -P 1780

Limitar la carga del sistema con CUPTool

La opción -l se utiliza para especificar la carga máxima que el sistema puede soportar para que el proceso o grupo de procesos continúe 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 3,5:

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

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

man cputool

Consulte las siguientes guías útiles para encontrar información de la CPU y monitorear el rendimiento de la CPU:

  1. 9 comandos útiles para obtener información de la CPU en Linux
  2. Cpustat: monitorea la utilización de la CPU mediante procesos en ejecución en Linux
  3. CoreFreq: una poderosa herramienta de monitoreo de CPU para sistemas Linux
  4. Encuentre los principales procesos en ejecución según el mayor uso de memoria y CPU en Linux

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