查找nginx在请求处理的每一步中花费了多less时间

我们使用Nginx作为服务于.NET WCF应用程序的IIS后端服务器的反向代理。

最近我注意到了开销响应时间的降低。 我的意思是我曾经在$ request_time和$ upstream_response_time之间看到6ms的差异,现在我在22ms。

活动连接的数量没有增加,请求数量,大小,响应大小都没有增加。 CPU和磁盘IO非常低。 networkingstream量似乎也很好。

我试过了 :

  • 禁用SSL,不变。
  • nginx的configuration更改回默认值,不变。
  • 机器从零开始重build,没有变化。
  • 原始configuration和开销较慢的VM非常低,+/- 6ms。

我怎样才能调查这个问题…?

有没有办法看看nginx花了多less时间在请求处理的每一步? 在debugging模式下查看error.log,找不到这个答案。

谢谢

有没有简单的方法(我知道)做到这一点:

  • nginx + lua
  • hack ngx_log – 模块
  • 创build你自己的。 自定义ngx_module

取决于你需要进入nginx多深,luad-solution可能是好的或者不够用; 使用lua您可以访问/修改(并因此计量)请求的不同阶段

  • 访问
  • 改写
  • 内容生成

从你写的,我wouldnt要成为谁必须debugging你的问题:)

添加一个答案,因为我不能评论。

放缓的原因可能与nginx完全无关。

我想你应该尝试对磁盘读取延迟进行基准testing,因为回到默认configuration并没有改变。