网络云排查工具使用常见场景以及排查方法

关注耗时的4个阶段:dns_lookup】、【tcp_connect】、【http_request】、【total

dns_lookup 耗时异常排查建议

从开始到解析完成的耗时,一般DNS解析都能在几百毫秒内完成,偶尔有慢的会超过1秒,但是一般超过2秒的DNS解析耗时都建议当做异常排查下。

1、首先多次执行`nslooup  api.mch.weixin.qq.com`看是否能稳定复现解析耗时异常

2、查看linux系统/etc/resolv.conf配置文件,确认是否配置了多个nameserver, 确认是否配置了超时设置,例如`options  timeout:1`

3、从上到下的顺序测试配置的nameserver是否可用: `dig @nameserver_ip  api.mch.weixin.qq.com` 去掉超时失败的,把最快的放在最前面

注意:  
如果resolv.conf里配置了多个nameserver, 而排前面的nameserver不可用,而且又没设置dns解析超时的话,会导致这里高达5秒的超时从而导致整体超时失败  
4
、如果系统里没有配置nameserver, 可能使用了内网的DNS服务器或者运营商提供的默认的DNS服务器,可以nslookup 确认下是否异常,异常的话如果服务器能访问公网,可以紧急配置/etc/resolv.conf加上公网上知名的public dns,例如114.114.114.114,或者腾讯的119.29.29.29

tcp_connect 耗时异常排查建议
从开始到完成与微信支付IP443端口tcp链接的耗时
此字段 =上一阶段耗时 + TCP链接握手耗时,一般也在1秒以内,超过一秒而且DNS解析没问题的话,需要排查网络链接
1
 nslookup 解析出IP,然后ping IP 测试下丢包率和往返耗时RTT,如果确认当前丢包率已经影响业务,可以快速切换到api2.mch.weixin.qq.com备用接入点域名(与api域名功能一样,同运营商跨城容灾解析)然后联合网络相关工作人员排查或者向运营商报障
2
 如果没有丢包而且RTT很正常,可以使用tcpdump抓包再确认TCP链接失败的具体阶段,参考命令
`tcpdump -i any -nn -s0 -A port 443 and host 131.x.x.x or 132.x.x.x`  
后面可以接 ` -w  xxx.pcap`导出到文件然后使用wireshark工具进一步分析

http_request 耗时异常排查建议
此字段为从开始到收到一地个字节的耗时(TTFB: time to first byte
如果前面几个字段都耗时很短,那就是HTTP/HTTPS 请求阶段耗时异常,次节点包括SSL握手和后端服务相应。可以联系微信支付确认订单的后端处理耗时来进一步定为,如果后端耗时也正常,可能是SSL握手阶段耗时异常,可以使用上面的tcpdump抓包确认SSL握手细节来进一步确认。

小Q是腾讯客服专家,同时也是本帮助页面的作者。请在下方提供反馈,以帮助她优化内容。

以上信息是否解决了您的问题?

请选择未解决的原因

关注微信公众号

向腾讯客服提问