Scripts php ruins trazendo o servidor para um stand still

2

Eu tenho uma configuração LAMP bem padrão no meu Debian VPS. O VPS tem 512MB de RAM e eu atribuí 128MB no meu php.ini para php.

Se eu criar um script com um loop infinito, o VPS praticamente fica parado (o SSH deixa de ser responsivo, etc.)

Eu queria saber se há uma maneira de diminuir a prioridade do PHP ou algo assim para que os scripts ruins não interfiram muito com o servidor.

Obrigado João.

    
por John Hunt 26.03.2011 / 12:03

2 respostas

2

Na verdade, você tem duas opções aqui, dependendo de como você executa isso. Uma solução é limitar o tempo de execução dos scripts PHP - ou seja, você pode ter um script PHP encerrado automaticamente com base em seu tempo real de execução.

Se você estiver executando isso a partir de um servidor web (Apache, Lighttpd, etc.), você pode usar o max_execution_time . Por padrão, isso é 30 segundos. Se você estiver executando isso a partir do CLI, use a função set_time_limit . / p>

Outra solução é usar algo como monit para monitorar a carga e o uso da CPU do processo PHP e eliminá-lo se chegar a um nível especificado.

Espero que isso ajude; embora possa ser uma boa ideia eliminar completamente estes tipos de erros lógicos dos seus scripts.

    
por 26.03.2011 / 14:57
2

Use nice ou renice no processo do servidor web se o PHP estiver sendo executado como um módulo (por exemplo, mod_php). Isso permitirá que o PHP use mais recursos quando eles estiverem disponíveis, mas priorizará outros processos que possam precisar deles.

Devo acrescentar que isso é apenas para Linux e talvez UNIX.

    
por 26.03.2011 / 15:01

Tags