Estou tentando entender o efeito da configuração de cpu.cpu_quota_us em cpu
cgroup subsytem no desempenho do aplicativo.
Essencialmente, reduzindo a cota de CPU, mas aumentando o número de CPUs
de tal forma que CPUs "eficazes" ainda são as mesmas, impactariam
aplicação?
Por exemplo, é 4 CPU 100% quota configuração mesmo como 8 CPU 50% quota
configuração?
Eu escrevi um programa simples com uso intensivo de CPU
link e correu em seguida
configuração do cgroup:
1) No cgroup que tem 4 cpus e sem limite de cota
2) No cgroup que tem 8 cpus e 50% cota
Ao executar este programa para 32 encadeamentos, percebi a seguinte diferença
o rendimento relatado pelo programa para as duas configurações:
4CPU@100 8CPU@50
176236 87252.5
O desempenho de 8CPU @ 50 é menos da metade do que recebo com 4CPU @ 100.
Ao depurar ainda mais, percebi que meu sistema está configurado para usar "powersave"
Governador de frequência da CPU. Neste modo, a freqüência da CPU dos núcleos quando
programa está sendo executado em 4CPU @ 100 tiro ao máximo, mas para 8CPU @ 50 CPU
a frequência dos núcleos foi muito menor.
Quando eu mudei o governador freq da CPU para "performance" (que é o único
outro governador de freq disponível), desempenho com aumentos de 8CPU @ 50
consideravelmente à medida que os núcleos começaram a funcionar na frequência máxima:
4CPU@100 8CPU@50
175804 163831
Os detalhes do meu sistema são:
Ubuntu 16.04.2 LTS
Kernel 4.4.0-103-generic
Eu tenho as seguintes perguntas sobre os governadores da CPUFreq:
1) Este link link diz, "O governador CPUfreq" powersave "define a CPU estaticamente para o
menor frequência dentro das fronteiras de scaling_min_freq e
scaling_max_freq. "
No entanto, notei que a frequência muda à medida que a carga aumenta. Como funciona o "powersave"?
2) Wy é a frequência da CPU que não aumenta para o máximo quando
O governador de frequência da CPU "powersave" está em uso e a quota da CPU está definida. A definição da cota da CPU está causando o "powersave" se comportando mal?