问题描述
当应用部署到微软云 Azure后,如果遇见本地访问Azure App Service应用慢或者是调用第三方接口慢的时候,有什么好的调试方法呢? 来判断具体时那一段请求耗时呢?
问题解答
当然浏览器本身的开发者工具(F12)就是一种非常好的工具。
当时,当安装浏览器不方便时,curl 就是一个非常好的工具。
curl 是常用的命令行工具,用来请求 Web 服务器。 它可以帮助查看证书交换情况,请求耗时分布等。
比如现在就可以通过如下的指令来分析请求时间分布情况:
curl -w "%{time_namelookup}::%{time_connect}::%{time_appconnect}::%{time_starttransfer}::%{time_total}::%{speed_download}" https://lbspringapps001-hello-world-app.microservices.azure.cn/
curl 命令的说明:
- time_namelookup:DNS 域名解析的时候
- time_connect:TCP 连接建立的时间,就是三次握手的时间
- time_appconnect:SSL/SSH 等上层协议建立连接的时间,比如 connect/handshake 的时间
- time_redirect:从开始到最后一个请求事务的时间
- time_pretransfer:从请求开始到响应开始传输的时间
- time_starttransfer:从请求开始到第一个字节将要传输的时间
- time_total:这次请求花费的全部时间
如下图中请求总耗时在200毫秒左右。
参考资料
curl 的用法指南:https://www.ruanyifeng.com/blog/2019/09/curl-reference.html
curl download: https://curl.se/download.html