Spa*_*pta 5 http munin nginx response-time
我有一个 nginx 反向代理。服务器接近每秒处理 600-700 个请求。我有一个 Munin HTTP 加载时间插件,它正在输出:
现在,问题是我在图表中看到了一些尖峰。预期响应时间应始终低于 200 毫秒。我一直在关注系统日志和消息,但我无法找出造成这种情况的实际原因。我想知道是否有任何好的 HTTP 响应时间分析系统,我可以安装/嵌入此 nginx 服务器并获取有关不同事物所花费的时间的详细报告/日志以及峰值的确切原因。
分析系统还可以帮助我了解瓶颈以及如何进一步优化延迟。
现在最重要的是调查 HTTP 加载时间图中峰值的原因(外部监视器报告了类似的模式 - Pingdom)并修复它以获得一致的响应时间
谢谢
哇!你如何测量加载时间?据我所知,nginx 只会报告请求响应时间($request_time),这是完全不同的。
几个月来我一直没有好好看看,但上次我检查时,可用于分析响应时间的内容很少。PastMon看起来很有希望。还有像 Client Vantage 这样的商业工具(相当昂贵)。
我最终编写了我自己的 - 创建一个简单的 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];
}
}
Run Code Online (Sandbox Code Playgroud)
如果您正在测量代理上的响应时间,那么您也在测量通过网络传递请求所花费的时间 - 即您的应用程序可能表现一致,但峰值是由互联网/客户端上的变化引起的。如果您想查看您的应用程序真正在做什么,那么您需要查看您的网络服务器日志。