
Me gustaría configurar mi sistema Linux de escritorio para que cada vez que comience a ejecutar un programa específico (ejecute ese proceso de este programa) al proceso respectivo se le asigne una alta prioridad. ¿Como hacer esto?
Soy consciente de que puedo hacerlo individualmente para cada instancia de ejecución del programa, es decir, para procesos específicos. Pero, ¿cómo configurar un valor predeterminado para el programa (es decir, para todos los procesos futuros)?
Versión del núcleo: 4.10.11-200.fc25.x86_64
Respuesta1
Hay un programa llamado "auto bonito demonio" que hace esto. Se ejecuta en segundo plano y cuando un proceso que coincide con un patrón particular aparece en la tabla de procesos, establece su amabilidad automáticamente.
Puede usar esto, pero es posible que se sienta un poco decepcionado, porque el programador de Linux tiene mucho que equilibrar y aumentar la prioridad no necesariamente dará un aumento mágico de velocidad. Incluso puedes encontrarte con situaciones en las que hace que las cosaspeor, porque su proceso de alta prioridad podría "matar de hambre" a los procesos de menor prioridad de los que su aplicación podría depender para avanzar.
Entonces, en lugar de eso, podrías mirar algo comosintonizado, que tiene perfiles de rendimiento para una variedad de cargas de trabajo diferentes.O, si eres aventurero, puedes mirarParches del programador de escritorio Con Kolivas, cuyo objetivo es optimizar la experiencia de escritorio. Esto es realmente difícil de medir y algo controvertido: muchas personas confían en ello, mientras que otras se muestran escépticas. (Hay un artículo de Linux Weekly News sobre la última versión enEl programador de CPU MuQSS(actualmente está detrás de un muro de pago, pero será gratuito el 4 de mayo).
Respuesta2
querrás mirar en ellindoyre buenoutilidades. Para darle a su proceso una mayor prioridad de CPU, debe tener privilegios de root/sudo. Puede utilizar nice
para iniciar el proceso con una prioridad más alta o renice
cambiarlo a una prioridad más alta posteriormente.
(terminal1):~# nice -n -10 sleep 100
(terminal2):~# top -b -n1 | grep sleep
23580 root 10 -10 4508 1244 1156 S 0.000 0.008 0:00.00 sleep
(terminal1):~# sleep 100
(terminal2):~# top -b -n1 | grep sleep
23888 root 20 0 4508 1316 1228 S 0.000 0.008 0:00.00 sleep
(terminal2):~# renice -n -10 23888
23888 (process ID) old priority 0, new priority -10
(terminal2):~# top -b -n1 | grep sleep
23888 root 10 -10 4508 1356 1268 S 0.000 0.008 0:00.00 sleep