Confira !!
Uma mudança de agenda "sched/fair" enfileirada esta manhã no sched/core do TIP para Linux 5.20 visa aumentar a eficiência ao procurar uma CPU ociosa sob carga pesada do sistema. A mudança liderada pela Intel deve melhorar a eficiência do kernel quando o sistema está sobrecarregado, mas, como acontece com a maioria dos ajustes de baixo nível, corre o risco de regressões.
Chen Yu, da Intel, desenvolveu esse novo recurso de agendador "SIS_UTIL" para procurar uma CPU ociosa com base na soma da média de utilização. Isso decorre da descoberta de que o select_idle_cpu() do kernel consome muito tempo ao procurar uma CPU ociosa enquanto o sistema está sobrecarregado.
Chen Yu explicou na mensagem detalhada do commit:
Seria ideal ter uma bola de cristal para responder a esta pergunta: quantas CPUs um caminho de ativação deve percorrer antes de encontrar uma CPU ociosa? Muitas métricas potenciais podem ser usadas para prever o número. Um candidato é a soma de util_avg neste domínio LLC. A vantagem de escolher util_avg é que é uma métrica de atividade histórica acumulada, que parece ser mais suave do que métricas instantâneas (como rq->nr_running). Além disso, escolher a soma de util_avg ajudaria a prever a carga do domínio LLC com mais precisão, porque SIS_PROP usa o tempo ocioso de uma CPU para estimar o tempo ocioso total do domínio LLC.
Em resumo, quanto menor for o util_avg, mais select_idle_cpu() deve procurar por CPU ociosa e vice-versa. Quando a soma de util_avg neste domínio LLC atinge 85% ou mais, a verificação é interrompida. A razão para escolher 85% como o limite é que este é o desequilíbrio_pct(117) quando um grupo sched LLC está sobrecarregado.
Com o patch e testes usando Netperf, " Há -87,9% menos varreduras de CPU após o patch, o que indica menor sobrecarga. Além disso, com esse patch aplicado, há -13% menos contenção de bloqueio de rq em perf-profile.calltrace.cycles-pp._raw_spin_lock.raw_spin_rq_lock_nested.try_to_wake_up.default_wake_function.woken_wake_function . Isso pode ajudar a explicar a melhoria de desempenho - porque este patch permite que a tarefa de despertar permaneça na CPU anterior, em vez de agarrar o bloqueio de outras CPUs. regressão dentro do benchmark de soquete Stress-NG, mas é uma área para investigação adicional. Houve também uma ligeira regressão em pelo menos uma configuração de teste do Hackbench.
Veja este compromisso para o sched/core do TIP para obter mais informações técnicas sobre essa mudança justa de agendador para o kernel. Será interessante chutar os pneus com essa mudança para o Kernel Linux 5.20 para ver quaisquer outras áreas/cargas de trabalho em que possa ajudar um sistema sobrecarregado ou, inversamente, quaisquer outras regressões que possa introduzir, mas essa é a diversão para os benchmarks e, em qualquer caso, ótimo para veja as contribuições contínuas da Intel na busca por melhorias de baixo nível no Linux.
Até a próxima !!
Nenhum comentário:
Postar um comentário