O CPU Burst permite que containers limitados usem temporariamente recursos extras de CPU, o que melhora o desempenho e reduz a latência. O Alibaba Cloud Linux 2 (versão do kernel 4.19.91-22.al7 e posteriores) e o Alibaba Cloud Linux 3 oferecem suporte ao CPU Burst na interface cgroup v1.
O CPU Burst é abordado em Kill the Annoying CPU Throttling.
Ative o CPU Burst
-
Verifique se a chave global do CPU Burst está ativada.
cat /proc/sys/kernel/sched_cfs_bw_burst_enabledSaída:
-
1: A chave global está ativada.NotaA chave global vem ativada por padrão.
-
Outro valor: A chave global está desativada.
Para ativá-la, execute:
sudo sh -c 'echo 1 > /proc/sys/kernel/sched_cfs_bw_burst_enabled'
-
-
Ative o CPU Burst em um cgroup filho específico.
NotaO CPU Burst vem desativado por padrão em todos os cgroups filhos.
-
Acesse o diretório do cgroup filho e verifique se a limitação do Completely Fair Scheduler (CFS) Bandwidth Controller está ativa.
Substitua
<cgroup>pelo nome do cgroup filho.cd /sys/fs/cgroup/cpu/<cgroup>/ cat cpu.cfs_period_us cat cpu.cfs_quota_usUm valor de retorno positivo indica que a limitação do CFS Bandwidth Controller está ativa. Com o CPU Burst ativado, o container pode exceder o limite de CPU.
-
Verifique a configuração padrão atual do CPU Burst.
cat cpu.cfs_burst_usO valor padrão
0indica que o CPU Burst está desativado. -
Defina um valor para
cpu.cfs_burst_uspara ativar o CPU Burst.Configure este parâmetro com um número inteiro positivo que especifique o máximo de recursos extras de CPU que o cgroup filho pode usar em rajadas. Exemplo:
-
Defina
cpu.cfs_quota_usecpu.cfs_period_uspara o CFS Bandwidth Controller.Essa configuração define
cpu.cfs_period_uscomo 100 ms ecpu.cfs_quota_uscomo 400 ms, o que garante ao cgroup filho uma alocação constante de 4 CPUs (cpu.cfs_quota_us/cpu.cfs_period_us).sudo sh -c 'echo 400000 > cpu.cfs_quota_us' sudo sh -c 'echo 100000 > cpu.cfs_period_us' -
Defina
cpu.cfs_burst_uspara ativar o CPU Burst.Essa configuração define
cpu.cfs_burst_uscomo 600 ms, o que permite ao cgroup filho usar até 6 CPUs adicionais em rajada (cpu.cfs_burst_us/cpu.cfs_period_us).sudo sh -c 'echo 600000 > cpu.cfs_burst_us'
-
-
Consultar estatísticas do CPU Burst
Acesse o diretório do cgroup filho desejado e visualize as estatísticas.
Substitua <cgroup> pelo nome do cgroup filho.
cd /sys/fs/cgroup/cpu/<cgroup>/
cat cpu.stat
Principais campos de saída:
nr_burst: Número de acionamentos do CPU Burst.burst_time: Tempo total em que o cgroup filho usou recursos extras de CPU em rajadas.