【Linux 性能优化系列】Linux 性能优化 -- 网络性能篇(二) DNS 解析性能优化

【Linux 性能优化系列】Linux 性能优化 -- 网络性能篇(二) DNS 解析性能优化

域名系统 (Domain Name System,DNS) 主要提供域名和 IP 地址之间映射关系的查询服务;

  • 查询系统域名服务器配置
cat /etc/resolv.conf

【Linux 性能优化系列】Linux 性能优化 -- 网络性能篇(二) DNS 解析性能优化_第1张图片

  • DNS 服务通过资源记录的方式管理所有数据,支持 A、CNAME、MX、NS、PTR 等多种类型的记录;
    • A 记录,用来把域名转换成 IP 地址;
    • CNAME 记录,用来创建别名;
    • NS 记录,表示该域名对应的域名服务器地址;
  • 查询域名的 A 记录
nslookup time.geekbang.org

【Linux 性能优化系列】Linux 性能优化 -- 网络性能篇(二) DNS 解析性能优化_第2张图片

  • 获取 DNS 解析的递归查询过程
# +trace表示开启跟踪查询
# +nodnssec表示禁止DNS安全扩展
$ dig +trace +nodnssec time.geekbang.org

实战记录

【1】DNS 解析失败

  • 查询域名对应的 IP
nslookup time.geekbang.org

nslookup -debug time.geekbang.org

说明没有配置 DNS 服务器,解决配置 /etc/resolv.conf 文件;

【2】DNS 解析不稳定

命令 : time nslookup time.geekbang.org

Server:    8.8.8.8
Address:  8.8.8.8#53

Non-authoritative answer:
Name:  time.geekbang.org
Address: 39.106.233.176

real  0m10.349s
user  0m0.004s
sys  0m0.0
  • 问题,DNS 解析缓慢 -- 达到 10 秒
  • 原因
    • DNS 服务器本身有问题,响应慢并且不稳定;
    • 客户端到 DNS 服务器的网络延迟比较大;
    • DNS 请求或者响应包,在某些情况下被链路中的网络设备弄丢了;
  • 调查
    • 检查与 DNS 服务器的连通性 -- 延迟较大且存在丢包现象
$ ping -c3 8.8.8.8
PING 8.8.8.8 (8.8.8.8): 56 data bytes
64 bytes from 8.8.8.8: icmp_seq=0 ttl=30 time=134.032 ms
64 bytes from 8.8.8.8: icmp_seq=1 ttl=30 time=431.458 ms
--- 8.8.8.8 ping statistics ---
3 packets transmitted, 2 packets received, 33% packet loss
round-trip min/avg/max/stddev = 134.032/282.745/431.458/148.713 ms
  • 解决
    • 更换 DNS 服务器
命令 : time nslookup time.geekbang.org
Server:    114.114.114.114
Address:  114.114.114.114#53

Non-authoritative answer:
Name:  time.geekbang.org
Address: 39.106.233.176

real  0m1.045s
user  0m0.007s
sys  0m0.004s
  • 问题,DNS 解析较慢 -- 达到 1 秒
  • 解决
    • 使用 DNS 缓存,安装使用 dnsmasq
    • ubuntu 最新版自动配置了 DNS 缓存

参考致谢

本博客为博主的学习实践总结,并参考了众多博主的博文,在此表示感谢,博主若有不足之处,请批评指正。

【1】极客时间 -- Linux 性能优化实战

你可能感兴趣的:(Linux,系列,--,性能优化)