1. 需求
这两天碰到dev环境的接口响应很慢,没一个接口都是超过1s。有两个确定点:
- 网关上游:外层的Nginx服务、域名解析等
- 网关下游:SpringCloud Gateway一级下层的业务服务
查看了SkyWorking,各个接口的响应响应时间和服务调用正常。
通过IP + PORT的方式,访问接口速度也正常。那么就是域名和Nginx这层的问题了。可以通过curl的方式进行定位。
2. 实现
2.1 curl命令输出格式
curl-format.txt
time_namelookup[DNS解析耗时]: %{time_namelookup}\n
time_connect[TCP建连耗时]: %{time_connect}\n
time_appconnect[SSL握手耗时]: %{time_appconnect}\n
time_redirect[请求事务耗时]: %{time_redirect}\n
time_pretransfer[请求到开始响应耗时]: %{time_pretransfer}\n
time_starttransfer[请求到开始传输耗时]: %{time_starttransfer}\n
------------------------------------------------------------\n
time_total[总耗时]: %{time_total}\n\n\n
2.2 执行curl命令
curl -w "@curl-format.txt" -o /dev/null -s -L -H "Content-Type: application/json" -H "Authorization: Bearer b28b9jkklla4c4782yui5bfbac55" -X GET https://www.baidu.com
[root@aa tmp]# curl -w "@curl-format.txt" -o /dev/null -s -L -H "Content-Type: application/json" -H "Authorization: Bearer b28b9jkklla4c4782yui5bfbac55" -X GET https://www.baidu.com
time_namelookup[DNS解析耗时]: 0.004
time_connect[TCP建连耗时]: 0.034
time_appconnect[SSL握手耗时]: 0.171
time_redirect[请求事务耗时]: 0.000
time_pretransfer[请求到开始响应耗时]: 0.171
time_starttransfer[请求到开始传输耗时]: 0.201
------------------------------------------------------------
time_total[总耗时]: 0.201