2014-03-04 56 views
0

简称:通过DNS缓存提升性能?

人会如何创建一个Linux系统(Ubuntu的),这样普通的查询可以运行得更快的本地DNS缓存,是不是就有可能清除呢?

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

背景:

有一个网络服务器起来,这使得连接本身,因为该数据库目前是一样的(虚拟)机上的云。为了使未来的数据库更容易在另一台服务器上进行扩展,我只需将web服务器指向诸如database.example.com之类的地址,并将DNS记录设置为127.0.0.1即可。该计划是,我可以简单地更改DNS记录,一旦一切都被迁移了。这可能看起来只是网络和数据库的矫枉过正,但也会有其他类型的服务器(redis,node.js等)

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

我似乎很清楚问题在于DNS,我相信本地缓存是一个很好的解决方案,因为它可以让我在一个地方管理它,而不必一步一步地浏览系统的不同部分并更改配置。

+0

这是一个Windows这种情况下,服务器?如果是这样的话,你可能会发现禁用IPv6会使它变得更快 - 在后IPv6版本的Windows(我认为Server 2008以后)中存在一个问题,那就是它总是会首先尝试执行IPv6查找 - 通常这表现为5 - 10秒延迟,所以我建议它:) –

+0

linux/ubuntu - 编辑上面,以反映 – davidkomer

回答

0

安装的dnsmasq

apt-get install dnsmasq 

锁定下来只本地主机添加以下/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 /网络/接口)