Como configurar um arquivo cgconfig.conf para limitar a cpu para todos os processos por um nome de usuário a 10% da CPU?

1

Há cerca de 5 anos eu quero limitar a cpu de um usuário no CentOS (6) - sem usar o cloudlinux.

Até agora, ainda não conseguimos obter uma resposta para isso. cgroups parece ser uma solução. No entanto, não sei como configurar o arquivo de configuração.

Aqui está uma pergunta que começa a responder, MAS NÃO RESPONDE A ESTA PERGUNTA. Eu procuro novamente a cada poucos meses, mas sem sucesso.

Eu realmente preciso de ajuda para configurar isso, pois é realmente necessário.

Aqui está o que eu tenho até agora.

Eu instalei o serviço libcgroup yum install libcgroup .
Eu verifiquei com ls /cgroup e verifiquei se ele está instalado. Eu recebo esta saída:
blkio cpu cpuacct cpuset devices freezer memory net_cls

Agora, fui ao arquivo cgconfig.conf . Está localizado em /etc/cgconfig.conf

Abaixo da seção mount { ... } no arquivo cgconfig.conf , adicionei o seguinte. Eu não sei se isso está certo (não sei se isso faz 10% de cpu).

Eu preciso de alguma ajuda para terminar isso para que eu possa finalmente restringir um usuário à porcentagem desejada de CPU (e, idealmente, memória, se possível!)

Isto é para criar o grupo chamado limitcpu (embora eu realmente queira chamá-lo de grupo limitado ou algo assim porque eu também quero restringir a memória também, mas por enquanto vamos chamá-lo de limitcpu group). / p>

group limitcpu {

    cpu {
            cpu.shares = 200;
            # cpu.cfs_period_us
            # cpu.cfs_quota_us
    }
    memory {

    }
}

Então devo usar este modelo:

template users/%g/%u {
                 cpuacct{
                 }
                 cpu {
                    cpu.shares = "1000";
                 }
      }

%g deve ser o nome do grupo.
%u é suposto ser nome de usuário.

Ok, então diga que meu usuário que eu quero limitar é chamado de resourcehoggeruser . Como faço para completar a configuração acima para limitar a CPU e o emory alocados para este usuário?

Deve parecer algo assim?

template users/limitcpu/resourcehoggeruser {
                 cpuacct{
                 }
                 cpu {
                    cpu.shares = "1000";
                 }
      }
  • O que mais preciso para que isso funcione? O código acima está correto?
  • Isso fará o que eu quiser quando o código estiver correto, o que limitará os processos gerados pelo nome de usuário à porcentagem desejada de CPU total?
  • Este é o local correto no arquivo para colocar este código?

O que é um "compartilhamento"? Digamos que eu tenha 16 CPUs e 24GB de RAM.

  • Qual é o número de cpu.shares se eu quiser ter 10% de cpu?
  • Que tal 20% de cpu?

Como sobre a memória?

  • Qual código eu também uso para limitar a memória a todos os processos pelo usuário?
  • Se você usar algo como eu poderia imaginar, mem.shares , quais seriam os "compartilhamentos" de 10% da memória? Como cerca de 20% da memória?

Eu realmente aprecio sua ajuda! Muito obrigado. Eu realmente preciso fazer isso funcionar. Eu procurei muito e muito e ainda não consegui encontrar uma resposta clara, então eu realmente preciso da sua ajuda.

    
por asegfvawer 24.08.2018 / 20:53

0 respostas