Eu tenho um aplicativo multi-threaded, com 4 threads de trabalho que até recentemente tiveram um desempenho muito bom na minha CPU de 4 núcleos.
O sistema está executando o Ubuntu 16.04.3 LTS.
Hoje atualizei meu sistema operacional com sudo apt-get dist-upgrade
Agora, de repente, vejo um desempenho muito menor no meu aplicativo, e rastreei isso até os encadeamentos do trabalhador que estão recebendo o contexto involuntariamente.
Olhando / proc / xxx / status para um segmento de trabalho, vejo que está sendo atingido por 80 interrupções de contexto involuntárias por segundo, conforme o campo nonvoluntary_ctxt_switches está aumentando rapidamente.
Observe que, pelo menos, 30 vezes por segundo, não haverá trabalho na fila, e os itens de trabalho serão aceitos voluntariamente.
O valor do segmento NICE é 0 e PRIORITY é 20.
Por que esses interruptores de contexto involuntários aparecem de repente? O Ubuntu recentemente alterou o agendador no kernel ou algo do tipo? Há alguma maneira de descobrir por que e quem está colidindo com os tópicos?
Além disso, não apenas os degraus são removidos, mas também leva um bom tempo para ser reparado novamente.