一、問題
開發反饋程序調用api.mch.weixin.qq.com時,時不時出現"[Errno -2] Name or service not known"錯誤。
二、排查
1、DNS地址配置為114.114.114.114,偶發出現解析慢的現象
2、可能原因
CentOS 6/7的DNS解析器在解析地址時會同時發出解析ipv4和ipv6的請求,且使用同一個socket接口,當只收到一個ipv4的解析響應時,socket出於“等待”狀態,等待ipv6的解析響應,因此會導致解析緩慢;
3、優化方法
cat /etc/resolv.conf options timeout:1 attempts:1 rotate single-request-reopen nameserver 210.22.70.3 nameserver 114.114.114.114 timeout:查詢一個nameserver的超時時間,單位是秒。系統缺省是5,最大可以設為30; attempts:這個是查詢的整個都嘗試一遍的次數; rotate:隨機選取一個作為查詢的dns server,默認為按照順序從上往下; single-request-reopen:超時時可以重新打開一個新的socket接收ipv6的解析響應,而不影響ipv4的解析響應。
4、問題
應用還是偶發出現問題,發現ping解析出來的ipv6地址同樣會出現“Name or service not known”錯誤

