UPC

Cómo limitar el uso de CPU de un proceso en Linux

Cómo limitar el uso de CPU de un proceso en Linux
En su vida útil de Linux, debe haber visto algunos procesos ocupar todos los ciclos de la CPU (90-99% de uso de la CPU), lo que hace que su computadora casi no responda hasta que finaliza. Eso puede estar bien si el proceso tarda unos segundos en completarse. Pero, ¿y si lleva mucho tiempo?? No es muy agradable sentarse y mirar su computadora que no responde durante minutos y horas, ¿verdad?? Bueno, Linux tiene muchas herramientas increíbles para hacer que estos no muy bueno procesos a bonito procesos.

Puede establecer la cantidad de CPU que puede tener un solo proceso. Si el proceso realmente necesita mucha potencia de CPU, puede ejecutar algunos comandos para darle todos los ciclos de CPU inactivos (ciclos de CPU que no necesita). De esa manera, nunca tendrá que sentarse y mirar fijamente su computadora que no responde por mucho tiempo.

En este artículo, le mostraré cómo limitar el uso de CPU de un proceso en Linux. Voy a usar CentOS 7 en este artículo. Pero cualquier distribución moderna de Linux debería funcionar. Entonces empecemos.

Limitar el uso de CPU con nice y renice:

En Linux, las prioridades de cada proceso en ejecución se pueden cambiar. Puede establecer prioridades más altas para el proceso que es más importante para usted que un proceso que está acaparando su CPU sin una buena razón.

Cada proceso en Linux tiene un buen valor. El valor de nice determina qué proceso tiene mayor prioridad y cuál tiene menor. Buen valor puede estar entre -20 y 19. Un proceso con el valor agradable de -20 tendrá la máxima prioridad y utilizará la mayoría de los ciclos de CPU. Un proceso con el valor agradable 19 tendrá la prioridad más baja y usará la CPU cuando ningún otro proceso la esté usando solo.

Hay dos formas de establecer el valor agradable de un proceso. Puede iniciar un proceso con el bonito comando para establecer un valor agradable al iniciar el proceso. O puede usar el re bueno comando para establecer un valor agradable después de que ha comenzado un proceso.

Para establecer un valor agradable al iniciar un proceso, ejecute el proceso de la siguiente manera:

$ agradable -n NICE_VALUE COMMAND_TO_RUN

NOTA: Aquí NICE_VALUE puede ser cualquier cosa desde -20 a 19 y COMMAND_TO_RUN es cualquier comando que desee ejecutar con el buen valor de NICE_VALUE.

Por ejemplo, digamos que desea ejecutar el dormir comando con el buen valor de 14. Ejecute el comando de la siguiente manera:

$ agradable -n 14 duermen 40000 y

Ahora puede verificar si el valor agradable está configurado correctamente usando el comando superior. Puede enumerar todos los procesos que inició (como su usuario de inicio de sesión) con el siguiente comando:

$ ps -fl

Como puede ver, el valor agradable del proceso se establece en 14.

Ahora, si desea cambiar el valor agradable de sus procesos existentes, entonces todo lo que necesita es el ID de proceso (PID) del proceso del cual desea cambiar el valor agradable. Puedes usar el ps aux comando o el cima comando para encontrar el ID de proceso o PID.

Entonces puedes correr re bueno comando de la siguiente manera para cambiar el valor agradable de un proceso existente:

$ sudo renice -n NEW_NICE_VALUE -p PROCESS_PID

Como puede ver, se cambia el buen valor del proceso con PID 6422.

Limitar el uso de CPU con CGROUPS:

La forma completa de GRUPOS es Control GRAMOgrupos. Es una característica del kernel de Linux que se utiliza para limitar los recursos para procesar grupos como (CPU, memoria, permisos y muchos más) en Linux.

Todo lo que tiene que hacer es crear un nuevo grupo de procesos y agregar los procesos a los que desea limitar los recursos a ese grupo. Sencillo!

Las herramientas de administración de CGROUPS no están instaladas en CentOS 7 de forma predeterminada. Pero está disponible en el repositorio oficial de paquetes de CentOS 7.

Primero actualice la caché del repositorio de paquetes YUM con el siguiente comando:

$ sudo yum makecache

Ahora instale las herramientas de administración de CGROUPS con el siguiente comando:

$ sudo yum instalar libcgroup-tools

Ahora presiona y y luego presione .

Debe estar instalado.

Puede limitar el uso de CPU de un solo grupo. Por ejemplo, puede usar CGROUPS para decirle a un proceso dentro de un CGROUP que use, digamos, 100 ms de cada 1000 ms (o .1 s de cada 1 s) de tiempo de CPU.

Primero crea un CGROUP con el siguiente comando:

$ sudo cgcreate -g cpu: / cpulimit

NOTA: Aquí, cpulimit es el nombre del grupo que controla el UPC uso.

Ahora tienes que configurar UPC.cfs_period_us y UPC.cfs_quota_us propiedad en el cpulimit grupo.

Para este ejemplo, 1000 ms (milisegundos) o 1000000us (microsegundos) deben establecerse en UPC.cfs_period_us propiedad y 100ms o 100000us deben establecerse en la UPC.cfs_quota_us propiedad.

Ejecute los siguientes comandos para establecer estas propiedades en el cpulimit grupo:

$ sudo cgset -r cpu.cfs_period_us = 1000000 cpulimit
$ sudo cgset -r cpu.cfs_quota_us = 100000 cpulimit

Ahora puede ejecutar el siguiente comando para verificar si todas las propiedades están configuradas correctamente:

$ sudo cgget -g cpu: cpulimit

NOTA: Aquí, cpulimit es el nombre del CGROUP y UPC es el recurso que estoy limitando.

Como se puede ver, UPC.cfs_period_us y UPC.cfs_quota_us están configurados correctamente.

Ahora, sea cual sea el proceso que agregue cpulimit CGROUP utilizará 1/10th (100000/1000000 = 1/10 = 0.1 = 10%) del total de ciclos de CPU.

Ahora para limitar la CPU de un proceso, inicie el programa o comando con cgexec como sigue:

$ sudo cgexec -g cpu: cpulimit YOUR_COMMAND

NOTA: Aquí, TU_MANDA puede ser cualquier comando válido de Linux.

Para demostrar que realmente funciona, primero ejecutaré el siguiente comando sin CGROUPS y luego con CGROUPS y le mostraré los resultados.

$ dd if = / dev / zero of = out bs = 1M

Como puede ver, sin CGROUPS, el comando usa el 90% de la CPU total.

Luego, ejecuté el mismo comando con CGROUPS de la siguiente manera:

$ sudo cgexec -g cpu: cpulimit dd if = / dev / zero of = out bs = 1M

Como puede ver, el uso de la CPU es del 10% como máximo. El proceso no está usando más que eso.

Así es como usa CGROUPS para limitar el uso de CPU de un proceso en Linux. Gracias por leer este artículo.

Referencias:

[1] https: // acceso.sombrero rojo.com / documentation / en-us / red_hat_enterprise_linux / 6 / html / resource_management_guide / sec-cpu

[2] https: // linux.morir.net / man / 1 / nice

[3] https: // linux.morir.net / man / 8 / renice

El cursor salta o se mueve aleatoriamente mientras escribe en Windows 10
Si descubre que el cursor del mouse salta o se mueve por sí solo, automáticamente, de manera aleatoria mientras escribe en una computadora portátil o ...
Cómo invertir la dirección de desplazamiento del mouse y los paneles táctiles en Windows 10
Ratón y Panel táctils no solo facilitan la informática, sino que también hacen que sea más eficiente y requieran menos tiempo. No podemos imaginar una...
Cómo cambiar el tamaño, el color y el esquema del puntero del mouse y del cursor en Windows 10
El puntero y el cursor del mouse en Windows 10 son aspectos muy importantes del sistema operativo. Esto también se puede decir de otros sistemas opera...