DNS 服务器负载

DNS 服务器负载

我们正在尝试确定运行 DNS 服务器(该服务器将成为 5,000 个域的权威机构)所需的硬件和带宽。Web 服务器每秒可获得几次点击。(这些是小型网站,因此数字有偏差)。

我们计划使用 BIND 或其他一些 unix 友好的 DNS 服务器守护程序来实现这一点,可能是在 Linux 或 FreeBSD 上。我不知道这种类型的 www 负载将生成多少 DNS 查询,或者它将使用多少带宽,或者查询在处理和内存使用方面有多昂贵。

这里有人有在野外使用 DNS 的经验吗?

答案1

我拥有的有关 DNS 的唯一统计数据来自我的个人服务器场(个人网站、项目、为自由职业客户托管),因为我不在工作中运行 DNS 机器。这大约是 6 个域的数据,每月大约有 15,000 次 WWW 浏览量。这两台服务器都是较旧的 HP Proliants,双 1.4GHz 奔腾处理器,2GB RAM,并且都托管了不止 DNS(还有 DHCP 和大量其他服务)。我有一个脚本,每小时提取一次查询统计数据。我每天在主服务器上看到平均 21M 个查询,在辅助服务器上看到 100k 个查询。BIND 进程甚至没有出现在顶部。

答案2

DNS 是一种非常简单的协议,它将 TTL(生存时间)纳入其响应数据中。话虽如此,浏览 www.mysite.com 的单个用户每 X 分钟只会请求一次 DNS(默认值通常为 1 小时左右)。我指出这一点只是为了明确每秒的点击次数并不像每秒的唯一点击次数那么重要。

此外,考虑到 ISP 向其客户提供 DNS 服务器,实际返回 SOA 的请求数量远低于访问您网站的人数。例如,假设马萨诸塞州东部有 50,000 人使用 Verizon DSL 在 1 小时内访问您的网站,那么这很可能只会生成少量您必须响应的 DNS 请求。Verizon 将执行其自己的缓存级别。

对于当前的硬件来说,单一请求绝对没有任何作用(相对而言)。5,000 个域的区域文件只能容纳在您的普通拇指驱动器上。

我建议你购买 4 台配备冗余磁盘的中端服务器,并在两个位置设置 DNS 基础设施。这样,你在每个站点和地理位置上都有冗余。考虑一下:如果你的位置一片漆黑,你将如何为 5,000 个域提供 DNS 服务?

答案3

你不需要太多。如今,即使是一个相对普通的机器,在运行 BIND 时也能每秒执行 20,000+ UDP 查询(如果运行 NSD,则更多)。

我实际上刚刚对 BIND 的 UDP 和 TCP 性能进行了基准测试,UDP 每秒查询次数为 23k。该服务器有 2GB RAM 和 2.0 GHz Xeon E5335 四核处理器。

答案4

我曾见过超过 5000 个域名托管在配备 1GB RAM 的相对较旧的 Opteron 处理器上。

显然,为了实现冗余,一个位于一个位置,另一个位于另一个地理位置。RAID-1 可能就足够了,只要它是硬件 RAID。

使用 n+1 冗余数据中心和优质硬件对于您的正常运行时间和服务器的使用寿命至关重要。

相关内容