Vida Tecno Idea guardada 0 veces
Sé la primera persona en valorar esta idea Valorar

Controlar el uso de la CPU del proceso con nice y cpulimit[Linux].

No importa cuán rápido sea su máquina Linux, siempre habrá algunas tareas que consumen mucho tiempo de CPU. Todo, desde la codificación de vídeo hasta la ejecución de modelos matemáticos, puede hacer que la CPU se ejecute al 100%. Esto está bien si la máquina no está haciendo nada más. Pero si es su escritorio principal o se usa como servidor, entonces ejecutar una tarea que maximice su CPU hará que la máquina sea lenta y difícil de usar. La belleza de un sistema operativo multitarea es que la máquina no se congela, ya que siempre programará el tiempo de la CPU para otras tareas y cosas como el escritorio seguirán funcionando, pero mucho más lentamente. El programador no tiene forma de saber que desea que la tarea intensiva de la CPU se ejecute con una prioridad menor o que limite el tiempo de su CPU. Sin embargo, hay algunas herramientas que se pueden utilizar para controlar el uso de la CPU de proceso para estas tareas hambrientas de recursos.

Para emular una tarea intensiva de CPU, podemos usar una herramienta llamada matho-prime que genera una lista de números primos. Si le pide que genere una lista lo suficientemente grande, maximizará el rendimiento de la CPU mientras está funcionando. Para instalar matho-prime en Ubuntu o en un Pi de frambuesa:

sudo apt-get install mathomatic-primes

Comencemos la tarea y veamos el uso de la CPU:

matho-primes 0 99999999999999> p.txt &

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>.

Esto le dice a matho-primes que genere una lista de primos de cero a nueve mil novecientos noventa y nueve millones novecientos noventa y nueve mil novecientos noventa y nueve! La salida se redirige al archivo p.txt. El ampersand al final le dice a la shell que ejecute el programa en segundo plano, lo que significa que regresará a la línea de comandos inmediatamente después de iniciar la tarea.

Ahora ejecute el comando superior y observe la cantidad de CPU que está siendo utilizada por el generador de números primos.

Controlar el uso de la CPU del proceso con nice y cpulimit[Linux].


Ahora matemos esa tarea y veamos cómo podemos lanzarla con una prioridad menor. Salga de la parte superior presionando q, luego escriba fg para poner los cebos matemáticos en primer plano y luego presione «Ctrl + C» para forzar la salida del programa.

Ahora inicie el programa de nuevo pero al principio del comando agregue la palabra nice:

nice matho-primes 0 999999999999> p.txt &

nice es una herramienta que le dice a Linux que programe esta tarea con una prioridad menor. La amabilidad oscila entre -20 (programación más favorable) y 19 (menos favorable). Por defecto, nice programará la tarea con una precisión de 10. Por defecto, las tareas normales se inician con una precisión de cero. Esto significa que una tarea con una amabilidad de 10 será vista como de menor prioridad y se le darán menos recursos de CPU.

Ahora podemos iniciar un segundo de estos generadores de números primos para emular otras tareas que quieras hacer en tu máquina (como navegar por la web o escribir un documento). Este tendrá una amabilidad normal, ya que el uso del escritorio debe ser una prioridad mayor que la de ejecutar el generador de números primarios.

matho-primes 0 999999999999> p2.txt &

Tenga en cuenta que la salida de este archivo se redirige a p2.txt. La salida desde arriba se verá algo así:

Controlar el uso de la CPU del proceso con nice y cpulimit[Linux].


Como puede ver, el proceso con la mayor amabilidad recibe menos tiempo de CPU. Esto significa que si inicia una tarea intensiva de CPU con nice, no hará que su máquina se sienta lenta ni hará que responda lentamente.

cpulimit

Existe otro comando llamado «cpulimit» que en lugar de cambiar la prioridad de programación, detiene temporalmente un proceso para asegurarse de que no excede el uso deseado de la CPU.

Para instalarlo escriba:

sudo apt-get install cpulimit

Ahora ejecute de nuevo el generador de números primos intensivo de la CPU y anote su número PID usando este comando:

ps | grep matho-prime

La primera columna de la salida es el PID. Ahora limite el uso de la CPU de ese proceso de esta manera:

sudo cpulimit -b -l 50 -p 16299

Donde 16299 es el PID del proceso matho-primes. Una mirada con la parte superior mostrará algo como esto:

Controlar el uso de la CPU del proceso con nice y cpulimit[Linux].


Ir más allá

Hay un comando que acompaña a nice llamado renice que cambiará la amabilidad de un proceso existente. Intentando usar top o ps con grep para obtener el PID de un proceso y usar renice +19 16299 para establecer la prioridad al mínimo posible (donde 16299 es el PID del proceso).

Siéntase libre de añadir en la discusión en el comentario de abajo.

Fuente: este post proviene de Vida Tecno, donde puedes consultar el contenido original.
¿Vulnera este post tus derechos? Pincha aquí.
¿Qué te ha parecido esta idea?

Esta idea proviene de:

Y estas son sus últimas ideas publicadas:

Muere Eduard Punset a los 82 años

Punset era una institución, el Carl Sagan español. Abogado, economista y comunicador científico logró acercar la ciencia a todos los españoles El divulgador científico Eduard Punset ha fallecido a lo ...

Etiquetas:

Recomendamos

Relacionado

¿Linux corre demasiado lento? He aquí cómo encontrar la causa

¿Alguna vez se ha preguntado por qué su equipo Linux está funcionando tan lentamente en estos días? A pesar de la alta velocidad de transmisión y el potente hardware, todavía se tarda una eternidad en ejecutar o procesar servicios o aplicaciones. Su computadora Linux parece ser lenta debido a algunas de las siguientes razones: Muchos servicios innecesarios iniciados o inicializados en el momento d ...

Linux

Cómo configurar la pila de LEMH (Linux, Nginx, MariaDB, HHVM) en el servidor Ubuntu

Si ha administrado un servidor Linux anteriormente, estará familiarizado con la pila LAMP (Linux, Apache, MySQL, PHP) comúnmente utilizada. Sin embargo, Apache, MySQL y PHP a veces pueden ser intensivos en recursos y pueden no ser los mejores para su servidor. En este tutorial, vamos a reemplazar todas y cada una de las partes de la pila, excepto Linux, con una alternativa mejor – Nginx, Mar ...

Linux

Cómo ejecutar Bash Script como root durante el inicio en Linux

¿Alguna vez has querido ejecutar un script al iniciar con privilegios de root? Si usted tiene un servidor en casa, o tal vez sólo un escritorio Linux, esto podría haber pasado por su mente. Esto suena dudoso, pero si usted entiende los riesgos, la recompensa por hacer esto puede ser bastante buena. Las razones principales son que no habrá más arranques del servidor, inicio de sesión sobre ssh, int ...

Linux

Cómo grabar el sonido del sistema con audio de pulso y audacia en Linux

¿Alguna vez has querido grabar lo que sea que hayas reproducido en tus altavoces directamente en un archivo MP3? De los tres sistemas operativos, Linux es el que tiene el proceso más a prueba de fallos (a través del servidor de sonido Pulse Audio). Este servidor de sonido, aunque inicialmente impopular, es ahora casi universalmente elogiado. De hecho, puede realizar algunas funciones avanzadas y p ...

Linux

Cómo encontrar el tiempo de actividad y la fecha de instalación de sus equipos Windows y Linux

Si necesita que su ordenador funcione las 24 horas del día, los 7 días de la semana, probablemente le interese saber cuánto tiempo ha estado funcionando su ordenador desde el último arranque. Esto es particularmente importante si está ejecutando un servidor en su ordenador. La fecha de instalación también es útil para averiguar si el sistema está actualizado o no. Importante en esta guía rápida, v ...

Linux

Cómo controlar la frecuencia de su CPU en Ubuntu

No hace falta decir que la conservación de la energía de la batería es la tarea más importante cuando está en movimiento con su portátil. Aparte de deshabilitar todos los programas no utilizados apagándolos durante el arranque, una de las mejores maneras de ahorrar energía de la batería es reducir la frecuencia de funcionamiento de su CPU. Cuanto más lenta sea la frecuencia de funcionamiento de la ...

Computación PC Linux ...

Microsoft amplía la compatibilidad con contenedores de Linux en Windows Server

Microsoft ha decidido ampliar su soporte para contenedores Linux en la próxima versión de Windows Server. Los contenedores Linux y las cargas de trabajo funcionarán de forma nativa en Windows Server, dijo Erin Chapple, gerente general del sistema operativo del servidor, en una publicación en línea la semana pasada. La compañía también ampliará la capacidad de aislamiento Hyper-V de Window Server, ...

Linux

Conocer su sistema Linux a través de la línea de comandos

Cada usuario de Linux le dirá lo mismo: conozca su ordenador. El mío siempre funciona no porque no haya errores, sino porque sé lo suficiente para identificar sus fuentes cada vez y corregirlas. Y una de las mejores maneras de monitorear su sistema es a través de la línea de comandos. Hay una gran interfaz gráfica de usuario para esto, pero la línea de comandos tiene la ventaja de funcionar en tod ...

Linux

Cómo realizar un seguimiento de eventos, citas y tareas diarias desde la línea de comandos de Linux

La gestión y el seguimiento de las tareas, eventos y citas es una parte importante de la rutina diaria de todo profesional. Hablando en términos de software, cada persona utiliza un software diferente que le ayuda a hacerlo. Aunque la mayoría prefiere usar un software basado en GUI, no todo el mundo pasa el día frente a una máquina con GUI, estoy hablando de aquellos que trabajan con servidores o ...

Linux

Cómo usar KVM con Virtual Machine Manager

La virtualización tiene muchos usos. Puede utilizarlo para probar otro sistema operativo, ejecutar aplicaciones que su sistema operativo no soporta, o incluso mantener servidores virtuales dentro de una o más máquinas virtuales. (máquina virtual basada en el núcleo) es una herramienta de virtualización de Linux que utiliza la virtualización asistida por hardware (también llamada virtualización nat ...