背景:我的项目的目标是创建一个响应速度非常快的网站.页面很少,其中许多只是302重定向.
在Nginx中,我正在记录here $request_time.
在PHP中,我正在记录请求开始时的微缩时间,并在它退出之前.
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日志和microtime,它们在起始时间方面有多接近?对于request_time接近3秒的那些,并且php执行时间是0.02秒,如果你推断请求开始时间并将其与php内的microtime进行比较,它们是否关闭,或者nginx需要等待一秒或2(也许是一个PHP进程释放等…).记录$upstream_response_time以查看比较结果可能会很有趣.