60秒PHP的邮件()延迟通过浏览器/ Apache,但没有延迟通过命令行

当在浏览器中使用PHP mail()函数时,我的服务器出现问题,所以通过Apache。

当通过浏览器调用脚本(称为mailtest.php ,实际发送消息的时间有60秒。

当我php mailtest.php调用php mailtest.php ,邮件立即发送,没有任何延迟。

Apache重新启动后,延迟消失了。 但是,它在几个小时后返回。

我做了一个Strace,在这里你可以看到最后30秒的延迟。

 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 

http://pastebin.com/q34peBW7

这是一个运行Debian的虚拟服务器。

有任何想法吗? 我越来越绝望了

clone(...)调用是为了创buildsubprocess,所以看起来花费了30秒在系统中创build一个新进程。 内存很可能已经耗尽,所使用的stream程大量交换。 你能检查这个使用topfree吗? 您还可以使用iostat监视磁盘活动,可能有很多I / O操作。