GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo cambiar la prioridad del proceso usando los ejemplos de Linux Nice y Renice

Cada proceso en ejecución en Unix tiene una prioridad asignada.

Puede cambiar la prioridad del proceso usando la utilidad nice y renice. El comando Nice iniciará un proceso con una prioridad de programación definida por el usuario. El comando Renice modificará la prioridad de programación de un proceso en ejecución.

Linux Kernel programa el proceso y asigna tiempo de CPU en consecuencia para cada uno de ellos. Pero, cuando uno de sus procesos requiere mayor prioridad para obtener más tiempo de CPU, puede usar el comando agradable y renice como se explica en este tutorial.

El rango de prioridad de programación del proceso es de -20 a 19. llame a esto como un buen valor.

Un buen valor de -20 representa la máxima prioridad y un buen valor de 19 representa la menor prioridad para un proceso.

De forma predeterminada, cuando se inicia un proceso, obtiene la prioridad predeterminada de 0.

1. Mostrar buen valor de un proceso

La prioridad actual de un proceso se puede mostrar usando el comando ps.

La columna "NI" en la salida del comando ps indica el valor agradable actual (es decir, la prioridad) de un proceso.

Lanzaremos un programa de prueba llamado test.pl que se usará para demostrar el comando agradable y renice. Este programa de prueba realizará ciertas tareas y se ejecutará durante un tiempo.

$ perl test.pl

Si ejecuta el comando ps como se muestra a continuación, puede notar que este programa test.pl tiene el valor agradable predeterminado de 0 (observe la columna NI en el siguiente resultado).

$ ps -fl -C "perl test.pl"
F S UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD
0 R bala 6884  6424 99  80   0 -  1556 -      13:45 pts/3    00:05:54 perl test.pl

2. Lanzar un programa con menos prioridad

En lugar de iniciar el programa con la prioridad predeterminada, puede usar el comando agradable para iniciar el proceso con una prioridad específica.

En este ejemplo, test.pl se inicia con un buen valor de 10.

$ nice -10 perl test.pl

Nota: Recuerde que -10 en el comando anterior establece la prioridad de un proceso en 10. El comando – in nice representa el guión, que usamos para pasar opciones al comando.

Entonces, para pasar el buen valor de 5, dirás -5. Para pasar el buen valor de 6, dirás -6.

Como puede ver a continuación, este programa ahora se inicia con un buen valor de 10, lo que significa que se ejecutará con una prioridad más baja en comparación con otros programas que se inician de forma predeterminada.

$ ps -fl -C "perl test.pl"
F S UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD
0 R bala 7044  6424 99  90  10 -  1556 -      13:58 pts/3    00:00:03 perl test.pl

3. Lanzar un programa con alta prioridad

También puede iniciar un programa con una prioridad más alta. Un valor agradable negativo aumentará la prioridad del proceso. Por lo tanto, el valor debe especificarse con un — (dos guiones) delante del comando agradable, como se muestra a continuación.

# nice --10 perl test.pl

Entonces, para pasar el valor agradable de -5, agregará dos guiones delante de 5. Para pasar el valor agradable de -6, agregará dos guiones delante de 6.

Como puede ver a continuación, este programa ahora se inicia con un buen valor de -10, lo que significa que se ejecutará con mayor prioridad en comparación con otros programas que se inician de forma predeterminada.

# ps -fl -C "perl test.pl"
F S UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD
4 R root 3534  3234 99  70 -10 -  1557 ?      19:06 pts/1    00:00:56 perl test.pl

Nota:los usuarios regulares no pueden iniciar un programa con una prioridad más alta. Solo el usuario raíz puede iniciar un programa con alta prioridad.

Como usuario habitual, si aumenta la prioridad, obtendrá el siguiente mensaje de error del comando agradable.

$ nice --10 perl test.pl
nice: cannot set niceness: Permission denied

Tenga en cuenta que después de imprimir el mensaje de error anterior, el programa seguirá ejecutándose con la prioridad predeterminada (es decir, 0).

4. Cambia la Prioridad con la opción -n

La prioridad del proceso se puede ajustar con la ayuda de la opción -n.

Aumentar la prioridad:

# nice -n -5 perl test.pl

Disminuir la prioridad:

# nice -n 5 perl test.pl

5. Cambiar la prioridad de un proceso en ejecución

La prioridad de un proceso que ya se está ejecutando se puede cambiar usando el comando renice.

En este ejemplo, el programa test.pl ya se está ejecutando con un buen valor de -10.

# ps -fl -C "perl test.pl"
F S UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD
4 R root 3534  3234 99  70 -10 -  1557 ?      19:06 pts/1    00:00:56 perl test.pl

Podemos cambiar el valor agradable del programa anterior a -19 como se muestra a continuación. Pase la identificación del proceso del programa anterior a la opción -p.

# renice -n -19 -p 3534

Verifique que el valor agradable se haya cambiado a -19.

# ps -fl -C "perl test.pl"
F S UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD
4 R root 3534  3234 99  70 -19 -  1557 ?      19:06 pts/1    00:00:56 perl test.pl

6. Cambiar la Prioridad de Todos los Procesos que Pertenecen a un Grupo

Usando la opción -g puede modificar la prioridad de todos los procesos que pertenecen a un grupo. El siguiente comando cambiará el valor agradable de todo el proceso que pertenece a geekstuff a 5.

# renice -n 5 -g geekstuff

7. Cambiar la prioridad de todos los procesos propiedad del usuario

Renice permite alterar la prioridad de todos los procesos propiedad de usuarios específicos como se muestra a continuación.

# renice -n 5 -u bala

El comando anterior cambiará la prioridad de todos los procesos propiedad del usuario bala. Asignará un buen valor de 5 a todos los procesos que pertenezcan al usuario bala.

# ps -fl -C "perl"
F S UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD
0 R bala 2720  2607 99  85   5 -  1556 -      14:34 pts/2    00:05:07 perl test.pl
0 R bala 2795  2661 99  85   5 -  1556 -      14:39 pts/3    00:00:09 perl 2.pl

Linux
  1. Tutorial de comandos agradable y renice de Linux (7 ejemplos)

  2. Cómo encontrar y matar el proceso Zombie en Linux

  3. ¿Cómo matar un proceso en Linux usando el comando?

  4. Cómo combinar Ping y Traceroute en Linux usando ejemplos de comandos MTR

  5. ¿Cómo mejorar todos los subprocesos (y niños) de un proceso en Linux?

Cómo cambiar la prioridad de un proceso en Linux

Cómo suspender un proceso y reanudarlo más tarde en Linux

Nice and Renice:establezca la prioridad del proceso en Linux

7 ejemplos para administrar la caducidad y el envejecimiento de la contraseña de Linux usando chage

Cómo matar procesos en Linux usando kill, killall y pkill

Cómo rastrear y rastrear un proceso de Linux