
Gostaria de configurar meu sistema Linux desktop para que sempre que eu começar a executar um programa específico (executar os processos deste programa), o respectivo processo receba uma alta prioridade. Como fazer isso?
Estou ciente de que posso fazê-lo individualmente para cada instância de execução do programa, ou seja, para processos específicos. Mas como configurar um padrão para o programa (ou seja, para todos os processos futuros)?
Versão do kernel: 4.10.11-200.fc25.x86_64
Responder1
Existe um programa chamado "auto bom daemon" que faz isso. Ele é executado em segundo plano e, quando um processo que corresponde a um padrão específico aparece na tabela de processos, ele define sua qualidade automaticamente.
Você pode usar isso - mas pode ficar um pouco desapontado, porque o agendador do Linux tem muito que equilibrar e aumentar a prioridade não proporcionará necessariamente um aumento mágico de velocidade. Você pode até se deparar com situações em que isso torna as coisaspior, porque seu processo de alta prioridade pode "privar" processos de prioridade mais baixa dos quais seu aplicativo pode realmente depender para avançar.
Então, em vez disso, você poderia olhar para algo comosintonizado, que possui perfis de desempenho para diversas cargas de trabalho diferentes.Ou, se você for aventureiro, você pode dar uma olhadaPatches do agendador de desktop Con Kolivas, que visam otimizar a experiência na área de trabalho. Isto é realmente difícil de medir e um tanto controverso – muitas pessoas acreditam nisso, enquanto outras são céticas. (Há um artigo do Linux Weekly News sobre a última iteração emO agendador de CPU MuQSS– atualmente atrás de um acesso pago, mas será gratuito em 4 de maio.)
Responder2
você vai querer dar uma olhada nolegaleReniceServiços de utilidade pública. Para dar ao seu processo uma prioridade de CPU mais alta, você precisa ter privilégios de root/sudo. Você pode usar nice
para iniciar o processo com uma prioridade mais alta ou renice
alterá-lo para uma prioridade mais 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