背景:我的项目的目标是创建一个响应非常快的网站。只有很少的页面,其中许多只是 302 重定向。
在 Nginx 中,我在这里登录$request_time
.
在 PHP 中,我记录了请求开始和退出前的microtime
。
php-fpm(PHP 5.3.27(和nginx(1.4.4(在同一台机器上运行,没有数据库(只是写入Beanstalkd队列(,没有复杂的nginx配置。
问题:PHP 执行时间和 Nginx 的 $request_time 之间存在巨大差异。$request_time 通常为 0.5 秒,但在某些小时内,平均更像是 3 秒。PHP 的执行时间总是在 0.008 秒到 0.02 秒之间(使用 PhalconPHP(。
问:为什么会有这么大的差异?也许我不完全了解$request_time
是什么,或者我的网络服务器有一些有问题的配置?我很乐意提供有关环境的更多信息。
$request_time
是从发送的第一个字节到关闭所有内容并完成日志记录的时间。 如果你看看你的nginx日志和你正在记录的微时间,它们在开始时间方面有多接近? 对于request_time接近 3 秒,PHP 执行时间为 0.02 秒的那些,如果您推断请求开始时间并将其与 php 中的微时间进行比较,它们是否接近,或者 nginx 是否需要等待一秒或 2 秒(也许是为了释放 php 进程, 等等(。 记录$upstream_response_time
以查看其比较情况可能会很有趣。