Procurando uma maneira de interromper tarefas em segundo plano/criar um modo de benchmark

Procurando uma maneira de interromper tarefas em segundo plano/criar um modo de benchmark

Estou usando o Ubuntu 20.04 e trabalhando na otimização de desempenho de alguns códigos CFD. Ao cronometrar meu código para obter feedback rápido sobre se alguma modificação é benéfica, geralmente há uma variação bastante grande de execução para execução, devido ao início de processos em segundo plano.

Como o código usa todos os threads disponíveis, qualquer thread sobrecarregado com tarefas em segundo plano faz com que todos os outros esperem.

Agora, minha pergunta é se existe ou não uma maneira rápida e fácil de interromper temporariamente tarefas em segundo plano/não essenciais e, portanto, colocar meu sistema em uma espécie de modo de benchmark. Scripts Bash, pacotes, opções integradas, tudo é bem-vindo.

Responder1

Uma das maneiras é mudar o sistema para destino multiusuário (isto significa sem sessão gráfica) reduzindo os processos em execução para cerca de 50:

sudo systemctl isolate multi-user.target

ou até mesmo mudar para usuário único (cerca de 10 processos serão executados)

sudo systemctl isolate runlevel1.target
# Enter
su -l your-user-name

E então execute seu aplicativo nesses níveis de execução.


Quando o benchmark terminar - volte para a sessão gráfica

sudo systemctl isolate graphical.target

informação relacionada