Valor de amaciabilidade do processo

1

Eu estava apenas procurando por algum esclarecimento sobre o valor de gentileza de um processo, ou talvez algum conselho, se eu estou fazendo tudo errado.

Digamos que eu tenha uma dúzia de processos de servidor da Web em uma única máquina, e estou preocupado com o fato de que qualquer um deles esteja agindo e sobrecarregando todos os recursos do sistema. Imediatamente a gentileza me vem à mente - eu daria a eles todos os valores positivos de gentileza para que eles usem quaisquer recursos, se estiverem disponíveis, mas os abandonem, se houver demanda por eles. Isso funcionará como eu esperava? Ou se todos eles tiverem os mesmos valores de simpatia, seria essencialmente o mesmo que todos eles sendo 0?

Basicamente, estou me perguntando como o kernel decide quais processos devem ter prioridade, se todos eles têm o mesmo valor de prioridade e todos precisam de recursos? Como há apenas 39 níveis possíveis de niceness (-20 a +19 iirc), eu não poderia dar a cada servidor valores diferentes, se funcionasse dessa forma.

Qualquer esclarecimento sobre isso seria muito apreciado.

Algumas outras soluções que encontrei para evitar a sobrecarga:

  • cpulimit utility (quais segfaults para mim)
  • ulimit - por usuário, soa ideal para mim, pois cada servidor tem seu próprio usuário, embora ele ofereça apenas cputime como uma medida do uso de recursos da CPU. Estou curioso para saber se isso significa tempo decorrido ou uma porcentagem de tempo de CPU por segundo ou qualquer outra coisa.
  • grupos de controle de processo - A partir de alguns resultados iniciais do Google, isso parece uma solução muito mais complicada, mas talvez seja necessário chegar a esse ponto.
por jvnk 19.05.2011 / 21:14

1 resposta

2
Primeiro de tudo, eu sugeriria que sua distro linux provavelmente tem coisas configuradas fora da caixa melhor do que você vai acabar se você começar a hackear coisas como mudar valores agradáveis em todo o sistema.

Em segundo lugar, eu não acho legal fazer o que você quer. Tem algum efeito, mas não tão profundo quanto você pode imaginar. O KIND do agendador e seu conjunto interno de regras tem mais efeito. Além disso, o tipo de problema que você provavelmente terá é com o uso da memória e não com o tempo de clock da CPU, portanto, não é provável que seja uma cura.

O sistema ulimit é provavelmente mais o que você tem em mente.

No entanto, meu principal conselho é que você soluciona apenas problemas do mundo real . Preocupar-se com algo antes que isso aconteça fará com que você conserte um sistema juntamente com fita adesiva e fio de fiação por conta de um problema de espantalho. Quando você tem um problema real, a melhor solução será muito mais aparente. É claro que arquitetar correção e planejamento para o pior é uma coisa boa, mas neste caso a sua distribuição Linux provavelmente fez a maior parte desse trabalho para você.

    
por 19.05.2011 / 21:29