接口偶发变慢,日志显示域名解析耗时两秒多,重试后又正常。碰到这种情况,我一般先确认改动有没有真的生效。
原因不复杂,本地解析配置的上游服务器响应慢或丢包,超时后回退到备用服务器才成功。
碰到「DNS 解析超时」这类问题,我习惯先把当前配置原样备份一份,改坏了立刻换回来,不用现场推。别只看报错的最后一行,往上看几行,真正的起因通常在上面。
dig @8.8.8.8 example.com +time=2 +tries=2 dig @223.5.5.5 example.com +time=2 cat /etc/resolv.conf
同类问题如果隔一段时间又出现,多半是某个定时任务或重启流程把改动冲掉了。把这次用到的命令存进笔记,比记住结论有用,换个环境还能照着走。
改完隔一天再看一次,当场正常不代表能稳住。测试环境和线上的差别,往往就在版本号和那几行被忽略的配置上。
具体做法是,用不同解析工具对比耗时;检查本机解析配置;换用稳定的上游并开启缓存。
最后用这个标准收尾,解析耗时稳定在几十毫秒,接口不再出现偶发变慢。