【问题标题】:Performance boost with DNS caching?使用 DNS 缓存提升性能?
【发布时间】:2014-03-04 13:34:56
【问题描述】:

简短:

如何在 linux 系统 (ubuntu) 上创建本地 DNS 缓存,以便普通查询可以更快地运行,然后是否可以清除它?

缓存应该在第一次查询时填充,而不是手动创建。

背景:

由于数据库当前位于同一台(虚拟)机器上,因此云中有一个网络服务器可以与自身建立连接。为了便于将来扩展数据库在另一台服务器上的位置,我只是将网络服务器指向了一个类似 database.example.com 的地址,并将 DNS 记录设置为 127.0.0.1。计划是,一旦一切都迁移过来,我就可以简单地更改 DNS 记录。仅使用 Web 和数据库这似乎有点过头了,但也会有其他类型的服务器(redis、node.js 等)

问题是当我使用主机名版本时,它会变得非常慢(session_start 需要 5-10 秒)。当我使用 IP 地址(即 127.0.0.1)时,它非常快(几毫秒)。

对我来说,问题出在 DNS 上似乎很清楚,我相信本地缓存是一个很好的解决方案,因为它可以让我在一个地方管理所有内容,而不必逐步遍历系统的不同部分并更改配置。

【问题讨论】:

  • 这是 Windows 服务器吗?如果是这样,您可能会发现禁用 IPv6 会加快速度 - 后 IPv6 版本的 Windows(我认为是 Server 2008 及更高版本)存在一个问题,它总是会首先尝试进行 IPv6 查找 - 这通常表现为 5-延迟 10 秒,因此我建议这样做 :)
  • linux/ubuntu - 在上面编辑以反映这一点

标签: performance caching ubuntu dns


【解决方案1】:

安装 dnsmasq

  apt-get install dnsmasq

将其锁定为仅 localhost 将以下内容添加到 /etc/dnsmasq.conf

listen-address=127.0.0.1

启动您的服务并验证它是否正在运行

service dnsmasq start
dig www.google.com @127.0.0.1

编辑 /etc/resolv.conf 添加以下内容作为您的第一行

  nameserver 127.0.0.1

如果存在,则删除选项会旋转。

请注意,您可能有一些脚本会自动重写/更改 /etc/resolv.conf,在这种情况下您也必须更改它们(即 dhclient 或 /etc/network/interfaces)

【讨论】:

    猜你喜欢
    • 2012-12-04
    • 1970-01-01
    • 2010-12-27
    • 1970-01-01
    • 2012-07-27
    • 1970-01-01
    • 2013-01-15
    • 1970-01-01
    • 2011-03-17
    相关资源
    最近更新 更多