Executando o script bash com php sob menor prioridade ou limite de CPU

3

Eu tenho um script bash que executa um conjunto de scripts php. Quando é executado, leva uma hora e coloca a CPU em 95-99%. Isso faz com que nosso problema de pilha de lâmpadas (principalmente o processo apache) e nosso site no mesmo servidor comece a esgotar o tempo limite ou 500 erros.

Como eu posso:

  • Execute o script bash e todas as tarefas associadas (scripts php que também chamam o banco de dados PostgreSQL) com baixa prioridade, para que as tarefas apache, php e db do servidor web sejam sempre priorizadas, OU
  • Limite o uso da CPU para o script e as tarefas associadas, por exemplo 25% de CPU

Não sei qual é a melhor solução.

    
por Dave 24.05.2012 / 01:12

3 respostas

5

Além de nice , procurando limitar o tempo de CPU, usando ulimit -t (supondo que você esteja em uma plataforma * nix)

    
por 24.05.2012 / 01:42
2

Execute seus comandos por meio de nice .

nice runs utility at an altered scheduling priority. If an increment is given, it is used; otherwise an increment of 10 is assumed. The super- user can run utilities with priorities higher than normal by using a neg- ative increment. The priority can be adjusted over a range of -20 (the highest) to 20 (the lowest).

 Available options:

 -n increment
         A positive or negative decimal integer used to modify the system
         scheduling priority of utility.
    
por 24.05.2012 / 01:25
1

Como outros sugeriram, nice é o que você deseja. Limitar a 25% da CPU é um problema Isso aumentará desnecessariamente a quantidade de tempo que o desempenho do sistema é reduzido.

Digamos que você tenha quatro carros e precise fazer alguns recados. O que faz mais sentido, usar um carro para fazer os recados ou usar todo o carro não utilizado para fazer as tarefas? O primeiro deixa 4 carros para tarefas importantes. O último deixa apenas 3. E nos casos mais realistas, o primeiro também fará o trabalho de baixa prioridade ser feito mais cedo.

    
por 24.05.2012 / 02:39