Usa cpulimit para liberar tu CPU

La herramienta recomendada para administrar los recursos del sistema en sistemas Linux es cgrupos . Si bien es muy poderoso en términos de qué tipos de límites se pueden ajustar (CPU, memoria, E/S de disco, red, etc.), configurar cgroups no es trivial. los agradable El comando ha estado disponible desde 1973. Pero solo ajusta la prioridad de programación entre los procesos que compiten por el tiempo en un procesador. El comando nice no limitará el porcentaje de ciclos de CPU que un proceso puede consumir por unidad de tiempo. los límite de cpu comando proporciona lo mejor de ambos mundos. Limita el porcentaje de ciclos de CPU que un proceso puede asignar por unidad de tiempo y es relativamente fácil de invocar.

El comando cpulimit es principalmente útil para procesos de larga ejecución y uso intensivo de CPU. La compilación de software y la conversión de videos son ejemplos comunes de procesos de ejecución prolongada que pueden maximizar la CPU de una computadora. Limitar el uso de la CPU de dichos procesos liberará tiempo del procesador para que lo utilicen otras tareas que pueden estar ejecutándose en la computadora. Limitar los procesos intensivos de la CPU también reducirá el consumo de energía, la salida de calor y posiblemente el ruido del ventilador del sistema. La desventaja de limitar el uso de la CPU de un proceso es que requerirá más tiempo para ejecutarse hasta completarse.

Instalar cpulimit

El comando cpulimit está disponible por defecto Fedora repositorios de Linux. Ejecute el siguiente comando para instalar cpulimit en un Fedora sistema linux

                      $ 
                      
                        sudo dnf install cpulimit
                      
                    

Ver la documentación de cpulimit

El paquete cpulimit no viene con una página man. Utilice el siguiente comando para ver la documentación integrada de cpulimit. La salida se proporciona a continuación. Pero es posible que desee ejecutar el comando en su propio sistema en caso de que las opciones hayan cambiado desde que se escribió este artículo.

                      $ 
                      
                        cpulimit --help
                      
                      
Usage: cpulimit [OPTIONS…] TARGET
   OPTIONS
      -l, --limit=N percentage of cpu allowed from 0 to 800 (required)
      -v, --verbose show control statistics
      -z, --lazy exit if there is no target process, or if it dies
      -i, --include-children limit also the children processes
      -h, --help display this help and exit
   TARGET must be exactly one of these:
      -p, --pid=N pid of the process (implies -z)
      -e, --exe=FILE name of the executable program file or path name
      COMMAND [ARGS] run this command and limit it (implies -z)
                    

una demostración

Para demostrar el uso del comando cpulimit, a continuación se proporciona una secuencia de comandos de Python artificial y computacionalmente intensiva. El script se ejecuta primero sin límite y luego con un límite del 50%. Calcula el valor de la 42. número de Fibonacci . El script se ejecuta como un proceso secundario del comando de tiempo en ambos casos para mostrar el tiempo total que se requirió para calcular la respuesta.

                      $ 
                      
                        /bin/time -f '(computed in %e seconds)' /bin/python -c 'f = lambda n: n if n<2 else f(n-1)+f(n-2); print(f(42), end=" ")'
                      
                      
267914296 (computed in 51.80 seconds)
$ 
                      
                        /bin/cpulimit -i -l 50 /bin/time -f '(computed in %e seconds)' /bin/python -c 'f = lambda n: n if n<2 else f(n-1)+f(n-2); print(f(42), end=" ")'
                      
                      
267914296 (computed in 127.38 seconds)
                    

Es posible que escuche que el ventilador de la CPU en su PC se acelera cuando ejecuta la primera versión del comando. Pero no debería hacerlo cuando ejecute la segunda versión. La primera versión del comando no está limitada por la CPU, pero no debería hacer que su PC se atasque. Está escrito de tal manera que solo puede usar como máximo una CPU. La mayoría de las PC modernas tienen varias CPU y pueden ejecutar simultáneamente otras tareas sin dificultad cuando una de las CPU está ocupada al 100 %. Para verificar que el primer comando está maximizando uno de sus procesadores, ejecute el comando superior en una ventana de terminal separada y presione el botón 1 llave. presione el q tecla para salir del comando superior.

Establecer un límite por encima del 100% solo tiene sentido en un programa que es capaz de paralelismo de tareas . Para tales programas, cada incremento del 100 % representa la utilización total de una CPU (200 % = 2 CPU, 300 % = 3 CPU, etc.).

Note que el -I La opción se ha pasado al comando cpulimit en lo anterior. example. Esto es necesario porque el comando que se va a limitar no es un proceso secundario directo del comando cpulimit. Más bien es un proceso hijo del comando time que a su vez es un proceso hijo del comando cpulimit. Sin el -I opción, cpulimit solo limitaría el comando de tiempo.

notas finales

Si desea limitar una aplicación gráfica que inicia desde un ícono de escritorio, copie el archivo .desktop de la aplicación (a menudo ubicado en el directorio /usr/share/applications) a su directorio ~/.local/share/applications y modifique el Exec línea en consecuencia. Luego ejecute el siguiente comando para aplicar los cambios.

                      $ 
                      
                        update-desktop-database ~/.local/share/applications
                      
                    

Related Posts