10 minutos são de muito longo prazo no que diz respeito ao agendador do Linux. Fatias de tempo são algo como 10 ms.
Ao observar as porcentagens de uso da CPU, lembre-se de que top
adiciona o uso por thread de processos multithread. Portanto, um processo de 10 threads que tem cada thread recebendo 10% de tempo ativo será exibido usando 100% de CPU.
O programador do Linux não passará fome na tarefa nice 19
(porque os erros de deadlock são difíceis de evitar se um processo puder ser desregulado para sempre), então mesmo nice 19
não impedirá que uma tarefa obtenha algum tempo de CPU. Se tiver muitos segmentos, ainda poderá usar recursos significativos da CPU.
Se alguns dos processos estiverem bloqueando a E / S, especialmente a paginação de memória virtual, o% de uso da CPU diminuirá. Execute algo como dstat
para ver interrupções de uso da CPU, disco, rede, paginação e opções de contexto. É como vmstat
, mas colorido e agradável.
Certifique-se de que seus processos realmente estão alinhados do jeito que você pensa que estão, olhando para a coluna NI
na parte superior. (É improvável que diferentes threads no mesmo processo tenham níveis diferentes, mas eu acho possível.)
Se você estiver usando renice
, lembre-se de que não é recursivo. O renegamento de um processo pai não afetará os filhos existentes, apenas os futuros filhos.