背景:我的项目的目标是创建一个响应速度非常快的网站。只有非常少的页面,其中许多只是302重定向。
在 Nginx 中,我正在记录here $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
是什么,或者我的网络服务器可能有一些有问题的配置?我很乐意提供有关环境的更多信息。
答案 0 :(得分:2)
$request_time
是从发送的第一个字节到关闭所有内容并完成日志记录的时间。如果你看一下你正在记录的nginx日志和microtime,它们在起始时间方面有多接近?对于request_time接近3秒的那些,并且php执行时间是0.02秒,如果你推断请求开始时间并将其与php内的microtime进行比较,它们是否关闭,或者nginx需要等待一秒或2(也许是一个PHP进程释放等...)。记录$upstream_response_time
以查看比较结果可能会很有趣。