linux kernel - seguridad - Procesos de calidad y prioridad en el sistema Linux
qué es el sistema indicas (1)
Estoy buscando una manera de modificar la prioridad de un proceso a través de la línea de comandos. Encontré el builtin (bash) nice
y el comando renice
que permiten modificar la amabilidad del proceso, pero no la prioridad real que se calcula por el núcleo.
¿Hay algún comando que permita establecer la prioridad? (¿O estoy confundido entre amabilidad y prioridad?)
La prioridad de un proceso en Linux es dinámica: cuanto más se ejecute, menor será su prioridad. Un proceso se ejecuta cuando en realidad está usando la CPU; la mayoría de los procesos en un cuadro típico de Linux solo esperan la E / S y, por lo tanto, no cuentan como en ejecución .
La prioridad se tiene en cuenta cuando hay más procesos en ejecución que núcleos de CPU disponibles: la prioridad más alta gana. Pero a medida que el proceso ganador pierde su prioridad con el tiempo, otros procesos tomarán el control de la CPU en algún momento.
nice
y renice
agregará / eliminará algunos "puntos" de la prioridad. Un proceso que tenga un valor nice
mayor obtendrá un menor tiempo de CPU. La raíz también puede establecer un valor nice
negativo: el proceso obtiene más tiempo de CPU.
Ejemplo: Hay dos procesos (1 y 2) que calculan el problema de detención y un núcleo de CPU en el sistema. El valor predeterminado es nice 0
, por lo que ambos procesos obtienen aproximadamente la mitad del tiempo de CPU cada uno. Ahora vamos a cambiar el proceso 1 al valor 10. Resultado: El proceso 2 obtiene una cantidad significativamente mayor de tiempo de CPU como el proceso 1.
Nota: en los equipos de escritorio modernos hay suficiente tiempo de CPU disponible: estos días son rápidos. Desafortunadamente, las unidades de disco duro siguen siendo relativamente lentas en la E / S aleatoria, por lo que incluso un buen proceso puede generar suficiente tráfico de E / S para ralentizar significativamente un sistema.