我们正在尝试确定运行 DNS 服务器所需的硬件和带宽,这将是 5,000 个域的权威。Web 服务器每秒获得几次点击。(这些是小站点,因此是倾斜的数字)。
我们计划为此使用 BIND 或其他一些对 unix 友好的 DNS 服务器守护进程,可能在 Linux 或 FreeBSD 上。我不知道这种类型的 www 加载会产生多少 DNS 查询,或者它会使用多少带宽,或者查询在处理和内存使用方面的成本是多少。
这里有没有人在野外使用 DNS 的经验?
我们正在尝试确定运行 DNS 服务器所需的硬件和带宽,这将是 5,000 个域的权威。Web 服务器每秒获得几次点击。(这些是小站点,因此是倾斜的数字)。
我们计划为此使用 BIND 或其他一些对 unix 友好的 DNS 服务器守护进程,可能在 Linux 或 FreeBSD 上。我不知道这种类型的 www 加载会产生多少 DNS 查询,或者它会使用多少带宽,或者查询在处理和内存使用方面的成本是多少。
这里有没有人在野外使用 DNS 的经验?
DNS 是一个非常简单的协议,它将 TTL(生存时间)合并到它的响应数据中。话虽如此,浏览 www.mysite.com 的单个用户只会每 X 分钟请求一次 DNS(默认通常是 1 小时左右)。我只是指出这一点,以便清楚每秒点击次数并不像每秒唯一点击次数那么重要。
此外,考虑到 ISP 为其客户提供 DNS 服务器,实际返回 SOA 的请求数量远低于访问您网站的人数。例如,在 Verizon DSL 上,东部 MA 有 50,000 人在 1 小时内访问您的站点,这仅可能产生您必须响应的少数 DNS 请求。Verizon 会做它自己的缓存级别。
对于当前的硬件,单个请求绝对没有(相对)工作。价值 5,000 个域的区域文件将适合您的平均拇指驱动器。
我建议您为自己准备 4 台带有冗余磁盘的中档服务器,并在两个位置设置 DNS 基础设施。这样,您在每个站点以及地理上都有冗余。考虑一下:如果您的位置变暗,您将如何为 5,000 个域提供 DNS?
你不会需要太多。如今,即使是一个相对普通的盒子也可以每秒执行 20,000 多个 UDP 查询,运行 BIND(如果运行 NSD 则更多)。
实际上,我刚刚对 BIND 的 UDP 和 TCP 性能进行了基准测试,并且每秒获得 23k 次 UDP 查询。该特定服务器具有 2GB RAM 和 2.0 GHz Xeon E5335 四核处理器。
就我个人而言,我在负载均衡器后面的 3 个虚拟机上为大约 40 个域运行 DNS(遗憾的是,它们都在一个站点中)。除了基本的操作系统外,这些机器上的 CPU 和内存负载基本上为 0。
我们有每个 VIP 的带宽的 MRTG 样式报告,两个 DNS VIP 显示的平均带宽不到 1k(我们每天有大约 40k 客户访问我们)。
我在 DNS 上的唯一统计数据来自我的个人服务器场(个人站点、项目、为自由客户托管),因为我没有在工作中运行 DNS 机器。这适用于大约 6 个域,每月约有 15,000 次 WWW 浏览量。这些服务器都是较旧的 HP Proliants、双 1.4GHz 奔腾、2GB RAM,并且都托管的不仅仅是 DNS(还有 DHCP 和许多其他服务)。我有一个脚本可以每小时提取一次查询统计信息。我每天在我的主服务器上看到平均 2100 万个查询,在我的辅助服务器上看到 100k 个查询。BIND 进程甚至没有出现在顶部。
我见过 5000 多个域托管在具有 1GB RAM 的相对较旧的 Opteron 处理器上。
显然,一个在一个位置,另一个在另一个地理位置,出于冗余目的。RAID-1 可能就足够了,只要它是硬件 RAID。
使用 n+1 冗余数据中心和优质硬件对于您将拥有多少正常运行时间以及服务器的使用寿命可能至关重要。
每个服务器设置都不同。
尝试使用可以生成适合您的流量模式的 DNS 流量的商业负载工具。