GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo cambiar la prioridad de un proceso en Linux

En el ecosistema Unix, un proceso es un programa en ejecución. Entonces, cualquier programa que se ejecute en su caja Linux es un proceso. Uno o más procesos pueden estar ejecutándose en su caja de Linux a la vez. Podemos mostrar la información sobre procesos activos usando ps dominio. De forma predeterminada, el comando ps solo muestra los procesos del usuario actual. Puede usar el comando "ps -ef" (sin comillas, por supuesto) para mostrar todos los procesos. Para ver el usuario de un proceso, usamos "ps -u". Espero que tengas una idea básica sobre los procesos de Linux. Pasemos ahora al tema de hoy:cómo cambiar la prioridad de un proceso en Linux usando nice y Renice comandos.

Como sabrá, de forma predeterminada, el kernel de Linux considera todos los procesos igualmente importantes y asigna la misma cantidad de tiempo de CPU para cada proceso. A veces, es posible que desee aumentar o disminuir la prioridad de ciertos procesos para utilizar más tiempo de CPU. Aquí es donde los comandos agradable y renice vienen en ayuda. El comando Nice se usa para ejecutar un proceso con una prioridad definida por el usuario, mientras que el comando Renice se usa para cambiar la prioridad de un proceso en ejecución. Generalmente, los comandos nice y renice se usan para cambiar la prioridad de la prioridad predeterminada de un proceso.

Cambiar la prioridad de un proceso con el comando Nice

Ver la prioridad predeterminada de un Proceso

Cada vez que un proceso se inicia normalmente, obtiene el valor de prioridad predeterminado de cero .

Usamos programa cmus , un reproductor multimedia de línea de comandos para los fines de esta guía.

Ejecutémoslo usando el comando:

$ cmus &

Nota: Si un comando es terminado por el operador de control & , el shell ejecuta el comando en segundo plano en un subshell.

Ahora veamos los procesos en ejecución usando el comando:

$ ps -al

Salida de muestra:

F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
0 T 1000 13829 13704 0 80 0 - 39431 signal pts/0 00:00:00 cmus
0 R 1000 13848 13704 0 80 0 - 8148 - pts/0 00:00:00 ps

Ver procesos en ejecución usando el comando ps

Como puede ver en el resultado anterior, el valor de amabilidad aparece debajo del encabezado de columna "NI" . Entonces, está claro que todos los procesos obtienen el valor de prioridad predeterminado de cero.

Iniciar un proceso con buena utilidad

Si inicia un proceso con un comando agradable sin ningún argumento, obtiene el valor predeterminado de 10 . Aquí 10 es el valor de la amabilidad o la prioridad. Los valores de amabilidad oscilan entre -20 (más favorable al proceso) a 19 (menos favorable al proceso). En pocas palabras, los valores negativos (p. ej., -20) otorgan mayor prioridad a un proceso y los valores positivos (p. ej., 19) otorgan menor prioridad.

Ahora, detengamos el programa en ejecución cmus con el comando:

$ kill -9 13829

Aquí, 13829 es el PID del programa cmus. Verá este valor bajo el encabezado "PID" en el resultado anterior.

Ahora, ejecute el programa cmus con la utilidad 'nice'.

$ nice cmus &

Verifique los procesos en ejecución con el comando:

$ ps -al

Salida de muestra:

 F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
 0 T 1000 13957 13704 0 90 10 - 55815 signal pts/0 00:00:00 cmus
 0 R 1000 13985 13704 0 80 0 - 8148 - pts/0 00:00:00 ps

Iniciar un proceso con buena utilidad

Mira, ahora el proceso cmus obtuvo el valor de amabilidad predeterminado de 10 , lo que significa que se ha cambiado su prioridad.

Iniciar un proceso con buena utilidad con menor prioridad

Además, puede iniciar el mismo proceso con un valor de amabilidad específico, por ejemplo, 15 , como a continuación.

Mata el proceso con el comando kill:

$ kill -9 13957

Nuevamente, comience el proceso con un valor de amabilidad de 15:

$ nice -15 cmus &

Nota: Aquí, no confundas - (guión) con menos. Usamos - (guión) para pasar un valor. Por lo tanto, para asignar un valor positivo, usamos -15. Del mismo modo, para asignar un valor negativo, usamos --15 (es decir, doble guión).

Verifiquemos el valor de amabilidad usando el comando ps -al:

$ ps -al

Salida de muestra:

F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
0 T 1000 14060 13704 0 95 15 - 55815 signal pts/0 00:00:00 cmus
0 R 1000 14069 13704 0 80 0 - 8148 - pts/0 00:00:00 ps

Inicie un proceso con buena utilidad con menor prioridad

Mira, ahora el proceso cmus obtuvo el valor de amabilidad de 15.

En los ejemplos anteriores, lanzamos los procesos con menor prioridad. Recuerde que el valor de amabilidad positivo representa una prioridad más baja .

Iniciar un proceso con la utilidad Nice con mayor prioridad

Ya sabes que el valor negativo de amabilidad representa una prioridad más alta. Tenga en cuenta que los usuarios normales no pueden iniciar un proceso con mayor prioridad. Debe ser usuario root para iniciar cualquier proceso con mayor prioridad .

Por lo tanto, para iniciar un proceso usando una utilidad agradable con una prioridad más baja, por ejemplo, -15 , ejecute el siguiente comando:

# nice --15 cmus &

Salida de muestra:

F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
4 S 0 14331 14306 0 80 0 - 20531 poll_s pts/0 00:00:00 sudo
4 S 0 14332 14331 0 80 0 - 13796 wait pts/0 00:00:00 su
4 S 0 14333 14332 0 80 0 - 5736 wait pts/0 00:00:00 bash
4 T 0 14358 14333 0 65 -15 - 55643 signal pts/0 00:00:00 cmus
0 R 0 14366 14333 0 80 0 - 8148 - pts/0 00:00:00 ps

Iniciar un proceso con la utilidad Nice con mayor prioridad

Iniciar procesos con la opción -n

También puede usar -n opción para aumentar o disminuir la prioridad.

Para aumentar la prioridad, ejecute el siguiente comando como root usuario:

# nice -n -15 cmus &

Para disminuir la prioridad, ejecute el siguiente comando como normal usuario:

$ nice -n 15 cmus &
Descargar - Libro electrónico gratuito:"Tutorial de Amazon S3"

Cambiar la prioridad de un proceso en ejecución con el comando Renice

Lo que hemos visto hasta ahora es que lanzamos un proceso con una prioridad definida por el usuario. Ahora, vamos a cambiar la prioridad de un proceso en ejecución usando el comando renice.

Veamos los procesos en ejecución usando el comando:

$ ps -al

Salida de muestra:

F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
0 T 1000 15059 14306 0 95 15 - 55815 signal pts/0 00:00:00 cmus
0 R 1000 15066 14306 0 80 0 - 8148 - pts/0 00:00:00 ps

Como puede ver en el resultado anterior, cmus se está ejecutando con un valor de prioridad más bajo de 15.

Para cambiar el valor de amabilidad actual de un proceso en ejecución, por ejemplo, 18 , ejecute el siguiente comando:

$ renice -n 18 -p 15059

Aquí, 15059 es el id de proceso del proceso cmus.

La salida de muestra sería:

15059 (process ID) old priority 15, new priority 18

Verifique el valor de amabilidad usando el comando:

$ ps -al

Salida de muestra:

F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
0 T 1000 15059 14306 0 98 18 - 55815 signal pts/0 00:00:00 cmus
0 R 1000 15074 14306 0 80 0 - 8148 - pts/0 00:00:00 ps

Para cambiarlo a un valor de amabilidad negativo (para asignar una prioridad más alta), ejecute el siguiente comando como root usuario:

# renice -n -20 -p 14749

Incluso puede cambiar las prioridades de todos los grupos en ejecución que pertenecen a un grupo en particular, como se muestra a continuación.

# renice -n -20 -g ostechnix

El comando anterior cambia la prioridad de todos los procesos en ejecución que pertenecen a un grupo llamado ostechnix .

Y también, puede cambiar la prioridad del proceso en ejecución propiedad de un usuario en particular, por ejemplo, sk , usando el comando:

# renice -n -20 -u sk

Para obtener más opciones, le sugiero que consulte las páginas man de las utilidades nice y renice.

$ man nice
$ man renice

Lectura sugerida:

  • Cómo averiguar cuánto tiempo ha estado ejecutándose un proceso en Linux
  • Cómo mostrar la información del proceso mediante Procs en Linux

Espero que tenga una idea básica sobre qué es un proceso de Linux y cómo cambiar su prioridad usando las utilidades nice y renice. Espero que ayude.


Linux
  1. Cómo usar el comando grep de Linux

  2. Cómo usar el comando de historial en Linux

  3. Cómo cambiar la contraseña en Linux (comando passwd)

  4. Cómo cambiar la identidad de un sistema Linux

  5. UNIX / Linux:Cómo cambiar la amabilidad (prioridad) de un proceso

Cómo cambiar el color de salida de 'Echo' en Linux

Cómo MATAR un proceso en Linux

Cómo usar el comando fd en el sistema Linux

¿Cómo usar el comando wget en Linux?

Cómo cambiar la contraseña de root en Linux

¿Cómo usar el comando xargs en Linux?