提高bind9服务重启的性能

提高bind9服务重启的性能

我正在为大量域名(50,000 - 100,000 个域名)设置托管 DNS 的名称服务器。

我将使用 Bind9,并且该服务每天需要重启几次。

我做了一些测试,看来 Bind9 服务的重新启动与域的数量的匹配很差。

 #domains | restart time
 -----------------------
   10,000 |    3.1 sec
   25,000 |    8.9 sec
   50,000 |     50 sec
  100,000 |   7:50 min

有什么方法可以加快服务重启速度?我注意到重启仅使用一个核心,有什么方法可以让它使用更多核心吗?

Bind9版本为9.7.1-P2,采用默认配置。

运行 Bind9 的服务器是 Intel Core 2 Due 2.93 GHz,配备 4 GB 内存和 Ubuntu Server 10.10。

任何帮助将不胜感激。

答案1

有很多域名 :)

好的 - 您遇到的 BIND 及其平面文件配置方法存在固有问题;它无法扩展。我认为您在 7 分钟内启动它实际上做得很好,我听说相同数量的域名需要 30 多分钟。

建议的解决方案是将域配置迁移到数据库支持的解决方案。从整体性能来看,每秒最大查询数会稍微慢一点(大概慢 15%),但应该会大大提高启动性能。

我用 BIND 做这件事已经有一段时间了,但有补丁可以让它使用 DNS。也许有完整的软件包可用,我不知道。我记得它的一个问题是它为每个域建立了一个新的 MySQL 连接,这很糟糕(tm)。

我实际上建议尝试一个针对此类情况进行优化的替代 DNS 服务器。我之前使用过 PowerDNS 作为解决方案。它速度很快,其设计架构已规划为数十万到数百万个域,当然还有数据库支持。

如果失败了,我想您可以尝试将配置文件放在 tmpfs 或类似的东西上以将其保存在内存中,但我不认为这会带来太多的性能提升,因为您实际上并不是受 I/O 限制,而是受 CPU 限制。

相关内容