什么是nginx的$ request_time,为什么它比php-fpm执行时间多得多?

时间:2013-12-05 23:57:01

标签: nginx php

背景:我的项目的目标是创建一个响应速度非常快的网站。只有非常少的页面,其中许多只是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是什么,或者我的网络服务器可能有一些有问题的配置?我很乐意提供有关环境的更多信息。

1 个答案:

答案 0 :(得分:2)

$request_time是从发送的第一个字节到关闭所有内容并完成日志记录的时间。如果你看一下你正在记录的nginx日志和microtime,它们在起始时间方面有多接近?对于request_time接近3秒的那些,并且php执行时间是0.02秒,如果你推断请求开始时间并将其与php内的microtime进行比较,它们是否关闭,或者nginx需要等待一秒或2(也许是一个PHP进程释放等...)。记录$upstream_response_time以查看比较结果可能会很有趣。