DNS服务器负载

我们正试图确定我们将需要硬件和带宽来运行一个DNS服务器,这将是一个5000域的权威。 networking服务器每秒钟点击几次。 (这些小网站,因此倾斜的数字)。

我们正在计划使用BIND或者其他的unix友好的DNS服务器守护进程,可能在Linux或者FreeBSD上。 我不知道这种types的www加载将会产生多lessDNS查询,或者它将使用多less带宽,或者查询在处理和内存使用方面花费多less。

有没有人在这里有DNS的经验?

我在DNS上的唯一统计数据来自我的个人服务器场(个人站点,项目,托pipe自由职业者客户端),因为我不在工作中运行DNS计算机。 这是约6个域名,每月约15,000个WWW视图。 这两款服务器都是HP Proliants,1.4GHz奔腾双核,2GB内存,两者都支持DNS(也包括DHCP和其他一些服务)。 我有一个脚本,每小时拉查询统计。 我在主服务器上看到的平均查询量为21百万,每天我的辅助查询量为10万查询量。 BIND过程甚至不显示在最上面。

DNS是一个非常简单的协议,它将TTL(生存时间)合并到响应数据中。 这就是说,一个浏览www.mysite.com的用户每隔X分钟只会询问一次DNS(默认通常是1小时左右)。 我只是指出这一点,所以很明显,每秒点击次数并不像每秒点击次数那么重要。

而且,考虑到ISP向其客户提供DNS服务器,实际返回到SOA的请求数量远远低于访问您网站的人数。 举例来说,Verizon DSL的东部MA5万人在1个小时的时间内访问您的网站,这只会产生一些您必须回应的DNS请求。 Verizon会做自己的caching。

对于当前的硬件来说,单个请求是绝对不行的(相对)。 价值5000区域的文件将适合您的平均拇指驱动器。

我build议你让自己得到4个带有冗余磁盘的中档服务器,并在两个地方build立一个DNS基础设施。 这样你在每个站点都有冗余,而且在地理上也是如此。 考虑一下:如果你的位置是黑暗的,你将如何为5000个域名服务DNS?

你不需要太多。 现在,即使是一个相对适中的盒子,每秒可以运行超过20,000个UDP查询,运行BIND(如果运行NSD,则会更多)。

实际上,我只是对BIND进行UDP和TCP性能基准testing,并且每秒获得23k个查询。 该特定服务器具有2GB RAM和2.0 GHz Xeon E5335四核处理器。

就我个人而言,我在3个虚拟机上运行大约40个域名,后面是一个负载均衡器(可惜全部在一个站点中)。 除了基本的操作系统外,这些机器基本上都有0个CPU和内存的负载。

我们已经为每个VIP提供了带宽的MRTG式样报告,而且两个DNS VIP的平均带宽不足1K(我们每天有大约4万个客户打我们)。

我已经看到在一个相对较旧的具有1GB内存的Opteron处理器上托pipe的超过5000个域名。

显然有一个位于另一个地点,另一个位于另一个地理位置,用于冗余目的。 只要是硬件RAID,RAID-1就足够了。

使用n + 1冗余数据中心和高质量硬件可能对您的正常运行时间以及服务器的使用寿命有多长至关重要。

每个服务器设置是不同的。

尝试使用可以生成适合您的stream量模式的DNSstream量的商业负载工具。