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 &
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.