記錄使用釘釘掃碼登入和驗證碼登入過於慢的問題(排查問題思路)
阿新 • • 發佈:2022-02-15
問題:測試環境使用釘釘掃碼登入和驗證碼登入速度很快,但是生產環境使用釘釘掃碼登入和驗證碼登入速度卻很慢,第一次15秒才收到驗證碼,第二次則是5秒。
使用兩個環境使用 pingapi.dingtalk.com 發現測試環境解析域名很快,立馬就用響應。生產環境則過好幾秒才響應,響應完後和測試環境的time值差不多,甚至可以說是一樣的
測試環境:
[root@u8-myapp ~]# ping api.dingtalk.com PING v6-cname.dingtalk.com.gds.alibabadns.com (106.11.23.24) 56(84) bytes of data. //測試環境這行解析資訊很快顯示64 bytes from 106.11.23.24 (106.11.23.24): icmp_seq=1 ttl=91 time=7.55 ms 64 bytes from 106.11.23.24 (106.11.23.24): icmp_seq=2 ttl=91 time=7.37 ms 64 bytes from 106.11.23.24 (106.11.23.24): icmp_seq=3 ttl=91 time=7.30 ms 64 bytes from 106.11.23.24 (106.11.23.24): icmp_seq=4 ttl=91 time=7.32 ms 64 bytes from 106.11.23.24 (106.11.23.24): icmp_seq=5 ttl=91 time=7.44 ms
生產環境:
[root@erpapp tderp]# ping api.dingtalk.com PING v6-cname.dingtalk.com.gds.alibabadns.com (106.11.23.24) 56(84) bytes of data. //生產環境這行解析資訊出現得比較慢 64 bytes from 106.11.23.24 (106.11.23.24): icmp_seq=1 ttl=91 time=7.12 ms 64 bytes from 106.11.23.24(106.11.23.24): icmp_seq=2 ttl=91 time=7.38 ms 64 bytes from 106.11.23.24 (106.11.23.24): icmp_seq=3 ttl=91 time=7.28 ms 64 bytes from 106.11.23.24 (106.11.23.24): icmp_seq=4 ttl=91 time=7.32 ms 64 bytes from 106.11.23.24 (106.11.23.24): icmp_seq=5 ttl=91 time=7.34 ms 64 bytes from 106.11.23.24 (106.11.23.24): icmp_seq=6 ttl=91 time=7.27 ms 64 bytes from 106.11.23.24 (106.11.23.24): icmp_seq=7 ttl=91 time=7.06 ms
至此,我們知道是域名解析慢的原因造成生產環境訪問釘釘介面慢的問題
解決過程:
對比測試環境和生產環境的dns值,發現都是一樣
//測試環境 [root@u8-myapp ~]# cat /etc/resolv.conf # Generated by NetworkManager nameserver 202.96.134.133 nameserver 223.5.5.5 //生產環境 [root@erpapp tderp]# cat /etc/resolv.conf # Generated by NetworkManager nameserver 202.96.143.133 nameserver 223.5.5.5
那麼為什麼生產環境的解析會慢呢,我試著加一條dns解析,變為以下:
[root@erpapp tderp]# cat /etc/resolv.conf # Generated by NetworkManager nameserver 114.114.114.114 nameserver 202.96.143.133 nameserver 223.5.5.5
然後重新執行程式,結果訪問速度和測試環境的一樣快了。