Una de las áreas críticas bajo el monitoreo de rendimiento de Linux tiene que ser el uso de la CPU y la carga del sistema. Hay varias herramientas de monitoreo de rendimiento de Linux para mantener un ojo en cómo se están desarrollando las cosas en un sistema.
A number of these tools simply output the system state/statistics while a few others provide you means of managing system performance. One such tool called CPUTool.
CPUTool es una herramienta simple pero poderosa de línea de comandos para limitar y controlar la utilización de la CPU de cualquier proceso a un límite dado y permite la interrupción de la ejecución del proceso si la carga del sistema excede 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 se determina por la carga del sistema. Se basa en el pseudo-filesystem /proc para leer PIDs y sus medidas de uso de la CPU.
Se puede utilizar para limitar el uso de la CPU o la carga del sistema influenciada por un único proceso o un grupo de procesos a un límite dado y/o suspender procesos si la carga del sistema supera un umbral.
Lectura Sugerida: Entender las Medias de Carga de Linux y Monitorear el Rendimiento de Linux
Instale CPUTool para Limitar el Uso de la CPU y la Carga Promedio
A CPUTool is only available to install on Debian/Ubuntu and its derivatives from the default system repositories using package management tool.
$ sudo apt install cputool
Limitar el Uso de la CPU del Proceso con CUPTool
Ahora veamos cómo funciona realmente cputool. Para demostrarlo todo, ejecutaremos un comando dd que debería resultar en un alto porcentaje de uso de la 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 glances que nos permiten ver un estado actualizado regularmente en tiempo real de los procesos en ejecución de un sistema Linux:
# top

Desde la salida 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.
La bandera --cpu-limit
o -c
se utiliza 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% del uso 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 dd debería oscilar entre (49.0%-52.0%).
# top

Para limitar aún más el uso de la CPU de dd al 20%, podemos ejecutar cputool por segunda vez:
# cputool --cpu-limit 20 -p 8275
Luego, verifica inmediatamente usando herramientas como top o glances de esta manera (el uso de CPU para dd ahora debería oscilar entre 19.0%-22.0% o ligeramente más allá de esto):
# top

Ten en cuenta que la terminal no espera ninguna entrada del usuario mientras cputool se está ejecutando; por lo tanto, se vuelve no receptiva. Para detenerlo (esto terminará la operación de limitación del uso de CPU), presiona Ctrl + C
.
Es importante 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
Usa la bandera -P
de esta manera:
# cputool --cpu-limit 20 -P 1780
Limitar la Carga del Sistema con CUPTool
La opción -l
se usa para especificar la carga máxima que el sistema puede soportar para que el proceso o grupo de procesos continúe en ejecución. Podemos usar un valor fraccionario (por ejemplo, 2.5).
El ejemplo a continuación 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, consulta la página de manual de CPUTool:
# man cputool
No dudes en consultar las siguientes guías útiles para encontrar información sobre la CPU y monitorear el rendimiento de la CPU:
- 9 Comandos Útiles para Obtener Información de la CPU en Linux
- Cpustat – Monitorea la Utilización de la CPU por Procesos en Ejecución en Linux
- CoreFreq – Una Potente Herramienta de Monitoreo de CPU para Sistemas Linux
- Encuentra los Procesos en Ejecución Principales por Mayor Uso de Memoria y CPU en Linux
En conclusión, CPUTool realmente resulta útil para la gestión del rendimiento en Linux. Comparte tus pensamientos sobre este artículo a través del formulario de comentarios a continuación.
Source:
https://www.tecmint.com/cputool-limit-linux-process-cpu-usage-load/