curl -o /dev/null -s -w %{time_connect}:%{time_namelookup}:%{time_total} https://www.120ask.com
-o表示输出结果到 /dev/null(避免返回数据淹没了时间信息)
-s表示去除状态信息
-w表示列出后面的参数的结果
curl命令支持的参数,有如下
time_connect 建立到服务器的 TCP 连接所用的时间
time_starttransfer 在发出请求之后,Web 服务器返回数据的第一个字节所用的时间
time_total 完成请求所用的时间
time_namelookup DNS解析时间,从请求开始到DNS解析完毕所用时间(记得关掉 Linux 的 nscd 的服务测试)
speed_download 下载速度,单位-字节每秒。
通过该命令,可以计算网络请求中DNS解析、连接、传输及总的时间,进行初步的故障排查。
通过上述命令我排查到我们内部DNS 有问题,一直在报错
dnsmasq[19271]: Maximum number of concurrent DNS queries reached (max: 150)
优化自己内部DNS 服务 参数重启解决
vim /etc/dnsmasq.conf
cache-size=1000
dns-forward-max=1000
或者更暴力的方法是绑定hosts