Niceness (Nice value ) y Priority
Priority se refiere a la prioridad actual con la que un proceso se ejecuta en el espacio de la CPU asignado al kernel. Mientras que Nice Value o Niceness es lo correspondiente al espacio de la CPU asignado al usuario.
En linux el rango de valores asignado de kernel space para prioridades es 0 hasta 139, mientras que para el niceness o user space es desde -20 (más alto), hasta el +19 (más bajo). Siendo el valor 0 el asignado por default.
la relación entre priority y niceness es:
PR = 20 + NI
Cómo obtener el valor de la prioridad de un proceso en ejecución.
Poner atención a las siguiente columnasPR: 20
NI: 0
Cuando NI es 0 (default), el valor de PR es 20 (default)
root@centOS-testing02 ~]# dd if=/dev/zero of=/dev/null &
[1] 1578
[root@centOS-testing02 ~]# top
top - 14:32:10 up 4 min, 2 users, load average: 0.16, 0.06, 0.01
Tasks: 101 total, 2 running, 99 sleeping, 0 stopped, 0 zombie
Cpu(s): 2.4%us, 7.5%sy, 0.0%ni, 90.1%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 1020380k total, 137708k used, 882672k free, 6884k buffers
Swap: 1048568k total, 0k used, 1048568k free, 39384k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1578 root 20 0 102m 708 588 R 99.7 0.1 0:11.20 dd
[root@centOS-testing02 ~]# ps -o pid,comm,nice -p 1578
PID COMMAND NI
1584 dd 0
[root@centOS-testing02 ~]#
Cómo cambiar la prioridad de un proceso en ejecución.
El comando para modificar la prioridad de un proceso en ejecución es renice[root@centOS-testing02 ~]# renice -n -10 -p 1578
1578: old priority 0, new priority -10
[root@centOS-testing02 ~]# ps -o pid,comm,nice -p 1578
PID COMMAND NI
1578 dd -10
[root@centOS-testing02 ~]#
Observar qué ocurre con los valores de las columnas PR y NI.
columna PR indica que la prioridad del proceso asciende de 20 a 10
columna NI indica que el niceness desciende de 0 a -10
columna NI indica que el niceness desciende de 0 a -10
top - 15:15:09 up 3 min, 3 users, load average: 0.65, 0.24, 0.09
Tasks: 1 total, 1 running, 0 sleeping, 0 stopped, 0 zombie
Cpu(s): 25.0%us, 75.0%sy, 0.0%ni, 0.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 1020540k total, 137228k used, 883312k free, 6900k buffers
Swap: 1048568k total, 0k used, 1048568k free, 39124k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1578 root 20 0 102m 708 588 R 99.7 0.1 0:59.04 dd
top - 15:15:12 up 3 min, 3 users, load average: 0.68, 0.26, 0.09
Tasks: 1 total, 1 running, 0 sleeping, 0 stopped, 0 zombie
Cpu(s): 21.9%us, 75.0%sy, 0.0%ni, 0.0%id, 0.0%wa, 3.1%hi, 0.0%si, 0.0%st
Mem: 1020540k total, 137228k used, 883312k free, 6912k buffers
Swap: 1048568k total, 0k used, 1048568k free, 39132k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1578 root 10 -10 102m 708 588 R 99.9 0.1 1:02.05 dd
Volvemos a asignar una nueva prioridad. Esta vez más alta (-19)
[root@centOS-testing02 ~]# renice -n -19 -p 1578
1578: old priority -10, new priority -19
[root@centOS-testing02 ~]# ps -o pid,comm,nice -p 1578
PID COMMAND NI
1578 dd -19
[root@centOS-testing02 ~]#
columna PR indica que la prioridad del proceso asciende de 10 a 1
columna NI indica que el niceness desciende de -10 a -19
top - 15:34:41 up 23 min, 3 users, load average: 1.00, 0.97, 0.71
Tasks: 1 total, 1 running, 0 sleeping, 0 stopped, 0 zombie
Cpu(s): 21.2%us, 72.7%sy, 0.0%ni, 0.0%id, 0.0%wa, 3.0%hi, 3.0%si, 0.0%st
Mem: 1020540k total, 137628k used, 882912k free, 7124k buffers
Swap: 1048568k total, 0k used, 1048568k free, 39248k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1578 root 10 -10 102m 708 588 R 99.9 0.1 20:30.69 dd
top - 15:34:44 up 23 min, 3 users, load average: 1.00, 0.97, 0.71
Tasks: 1 total, 1 running, 0 sleeping, 0 stopped, 0 zombie
Cpu(s): 24.2%us, 72.7%sy, 0.0%ni, 0.0%id, 0.0%wa, 3.0%hi, 0.0%si, 0.0%st
Mem: 1020540k total, 137628k used, 882912k free, 7124k buffers
Swap: 1048568k total, 0k used, 1048568k free, 39248k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1578 root 1 -19 102m 708 588 R 99.7 0.1 20:33.69 dd
Cómo setear la prioridad antes de lanzar un proceso.
[root@centOS-testing02 ~]# nice -n 19 dd if=/dev/zero of=/dev/null &[1] 1604
[root@centOS-testing02 ~]# ps -o pid,comm,nice -p 1604
PID COMMAND NI
1604 dd 19
[root@centOS-testing02 ~]#
Observamos los valores que muestran las columnas PR y NI.
columna PR indica que la prioridad del proceso comienza con 39
columna NI indica que el niceness es de 19
columna PR indica que la prioridad del proceso comienza con 39
columna NI indica que el niceness es de 19
[root@centOS-testing02 ~]# top -b -p 1604
top - 15:58:13 up 46 min, 3 users, load average: 0.69, 0.90, 0.88
Tasks: 1 total, 1 running, 0 sleeping, 0 stopped, 0 zombie
Cpu(s): 14.8%us, 47.3%sy, 0.1%ni, 35.2%id, 2.3%wa, 0.2%hi, 0.0%si, 0.0%st
Mem: 1020540k total, 137752k used, 882788k free, 7348k buffers
Swap: 1048568k total, 0k used, 1048568k free, 39276k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1604 root 39 19 102m 704 588 R 99.9 0.1 0:14.93 dd
Esto es debido a que por default la prioridad de un proceso es 20 y el niceness es 0
Cómo definir de antemano la prioridad que un usuario puede entregar a un proceso al ejecutarlo.
Para modificar la prioridad por default es necesario setear el niceness. El comportamiento de ambos params es el siguiente:
A mayor valor de niceness, Es menos prioritario
A menor valor de niceness, Es más prioritario.
Dentro de este archivo se describe el formato para la inscripción, el cual es de la siguiente forma:
[username] [hard|soft] priority [nice value]
En el siguiente ejemplo, vamos a darle menor prioridad a todos los procesos que ejecute el usuario "user3". Para ello seteamos el niceness con un valor de 5, y con esto la prioridad por default en sus procesos es de 25.
[root@centOS-testing02 ~]# grep user3 /etc/security/limits.conf
user3 hard priority 5
[root@centOS-testing02 ~]#
con el usuario "user3" se ejecuta el proceso y se verifica la prioridad y el niceness
bash-4.1$ dd if=/dev/zero of=/dev/null &
[1] 1786
bash-4.1$ top -b -p 1786
top - 10:11:52 up 25 min, 3 users, load average: 0.18, 0.05, 0.02
Tasks: 1 total, 1 running, 0 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.0%us, 0.2%sy, 0.0%ni, 98.7%id, 1.1%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 1020540k total, 145380k used, 875160k free, 8416k buffers
Swap: 1048568k total, 0k used, 1048568k free, 40800k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1786 user3 25 5 102m 700 580 R 99.7 0.1 0:11.25 dd
^C
bash-4.1$
[root@centOS-testing02 ~]# ps -o pid,comm,nice -p 1786
PID COMMAND NI
1786 dd 5
[root@centOS-testing02 ~]#
No hay comentarios:
Publicar un comentario