PHP脚本有时会等待20-30分钟才能启动


PHP script occasionally waits 20-30 minutes to start

我的服务器上有一个PHP脚本,主要用于从上传获取文件并将它们移动到适当的位置。它通常工作良好,但偶尔,剧本不会开始20-30分钟。在等待期间,整个上传的文件将位于tmp文件夹中,因此看起来数据传输已经完成。这是一段摘自Apache访问日志的摘录,表明对脚本的POST(来自Android应用程序)…

[29/Nov/2011:11:21:55 -0500] "POST /submit.php HTTP/1.1" ...

然而,这个条目直到11:43左右才出现在访问日志中,周围是11:43:42和12:00:02的其他页面请求。这让我相信条目直到脚本执行时才被写入,但它是在提交时写入的。这里是错误日志,我从脚本中编写事件…

[Tue Nov 29 11:43:19 2011] Script started: Nov 29, 2011 11:43:19
[Tue Nov 29 11:43:19 2011] Audio file provided
[Tue Nov 29 11:43:19 2011] Timestamp provided
[Tue Nov 29 11:43:19 2011] Defaults set
[Tue Nov 29 11:43:19 2011] Connected to database
[Tue Nov 29 11:43:19 2011] Database selected
[Tue Nov 29 11:43:19 2011] Query successful
[Tue Nov 29 11:43:19 2011] 551: ID set
[Tue Nov 29 11:43:19 2011] 551: Audio file moved
[Tue Nov 29 11:43:19 2011] 551: Algorithm succeeded
[Tue Nov 29 11:43:19 2011] 551: Algorithm query succeeded
[Tue Nov 29 11:43:19 2011] 551: Photo type identified
[Tue Nov 29 11:43:20 2011] 551: Photo and thumbnail saved
[Tue Nov 29 11:43:20 2011] 551: Cache cleared
[Tue Nov 29 11:43:20 2011] Script finished: Nov 29, 2011 11:43:20

你知道什么会导致PHP脚本这么长时间不执行吗?或者我应该设置什么样的日志记录来找出原因?服务器运行Ubuntu 10.04Apache 2.2.14PHP 5.3.2

你应该检查一下服务器的内存——如果你上传的内容超过了内存的处理能力,你可能有问题了。PHP在实际保存之前将所有上传的文件放在内存中,如果必须首先将其写入交换文件,则会看到所描述的这些问题。