HTTP响应时间分析

我有一个nginx反向代理。 服务器接近每秒600-700个请求。 我有一个穆宁HTTP加载时间插件是输出这个:

http://monitor.wingify.com/munin/visualwebsiteoptimizer.com/lb1.visualwebsiteoptimizer.com-http_loadtime.html

现在,问题是我看到图中的一些尖峰。 预期的响应时间应该始终低于200ms。 我正在关注系统日志和消息,但我无法弄清楚这个的真正原因。 我想知道是否有任何好的HTTP响应时间分析系统,我可以安装/embedded到这个nginx服务器,并得到一个详细的报告/日志分解不同的事情所花费的时间,究竟是什么原因的尖峰。

性能分析系统还将帮助我了解瓶颈,如何进一步优化延迟。

现在最重要的是调查HTTP加载时间图中的峰值的原因(类似模式由外部监视器 – Pingdom报告),并修复它以获得一致的响应时间

谢谢

哇! 你如何衡量加载时间? 就我所知,nginx只会报告请求响应时间($ request_time),这是完全不同的。

我几个月没有好好看,但是上次我查了一下,分析响应时间的可能性很小。 PastMon看起来很有希望。 还有像Vantage这样的商业工具(相当昂贵)。

最后我写了自己的东西 – 创build一个简单的awk脚本来报告所有超过阈值的命中并不难 – 但是记住,你需要回去查看URL是如何运行的时间。 例如

# looking for URLs matching 'example.com/interesting' # with URL in $6 and $request_time in $8 BEGIN {} $6==/example.com\/interesting/ { if ( $8>0.3) { n[$6]+=1; # no of hits by URL t[$6]+=$8; # sum of times by url s[$6]+=$8 * $8; # sum of sq of times by url if (m[$6]<$8) m[$6]=$8; # max time for url } } END { print "url, n, avg, stddev, max"; for (x in n) { print x ", " n[x] ", " t[x]/n[x] ", " sqrt(s[x]-t[x]*t[x])/(n[x]-1) ", " m[x]; } } 

如果您正在测量代理服务器上的响应时间,那么您还需要测量通过networking传送请求所花费的时间,即您的应用程序可能会一直运行,但是由互联网/客户端上的更改引入峰值。 如果你想看看你的应用程序真的在做什么,那么你需要看看你的Web服务器日志。