60 segundo php mail () demora através do navegador / Apache, mas sem atraso através da linha de comando

2

Estou tendo um problema no meu servidor quando a função mail() do PHP está sendo usada em um navegador, portanto, através do Apache.

Quando o script, vamos chamá-lo de mailtest.php , está sendo chamado através de um navegador, há um atraso de 60 segundos para enviar a mensagem.

Quando eu chamo php mailtest.php da linha de comando, o e-mail é enviado instantaneamente, sem atraso.

Após o reinício do Apache, o atraso desapareceu. No entanto, ele retorna depois de algumas horas.

Eu fiz um Strace e aqui você pode ver um atraso de 30 segundos no final.

13076 09:38:02 clone( <unfinished ...>
13076 09:38:32 <... clone resumed> child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0xa5f346f8) = 13160

link

É um servidor virtual btw rodando Debian.

Alguma ideia? Estou ficando desesperado.

    
por Oscar 27.08.2011 / 10:11

1 resposta

4

clone(...) call é para criar processos filhos, então parece que levou 30 segundos para criar um novo processo em seu sistema. Muito provavelmente, a RAM estava esgotada e os processos usados trocam extensivamente. Você poderia verificar isso usando top e free ? Você também pode monitorar a atividade do disco usando iostat , provavelmente havia muitas operações de E / S.

    
por 27.08.2011 / 11:05