这个坑值得记一笔。任何命令提权前都要停顿几秒,远程登录也慢,访问外网完全正常,处理器和内存都没有压力。

原因不止一个,得分开看。主机名没有对应的解析记录,查询要等超时才返回;解析配置指向了不可达的地址;解析顺序配置让本地查询排在了最后。

测试解析耗时

time getent hosts $(hostname)

再往下检查解析配置顺序

grep hosts /etc/nsswitch.conf

接着查本地映射文件

grep -n $(hostname) /etc/hosts

补上主机名映射

echo '127.0.0.1 $(hostname)' >> /etc/hosts

当时还开着另一个排查窗口,两边日志对照着看才定位到。

同一份数据我导出了两份,一份留底,一份拿来试。

这类问题以前遇到过,但这次的触发条件和上次不一样。

改完先别撤,确认这几项。提权和登录不再停顿,主机名查询在毫秒级返回。

这里还有个坑。很多服务启动慢也是这个原因,尤其是依赖反向解析的服务;先排查解析再怀疑性能,能省掉大量无谓的调参时间。改动前把原配置备份一份,出问题能马上回滚,这比任何技巧都实用。

作者 9823189