1. 程式人生 > 其它 >記錄使用釘釘掃碼登入和驗證碼登入過於慢的問題(排查問題思路)

記錄使用釘釘掃碼登入和驗證碼登入過於慢的問題(排查問題思路)

問題:測試環境使用釘釘掃碼登入和驗證碼登入速度很快,但是生產環境使用釘釘掃碼登入和驗證碼登入速度卻很慢,第一次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

  然後重新執行程式,結果訪問速度和測試環境的一樣快了。