Domain-Name-System

提高bind9服務重啟的性能

  • January 6, 2011

我正在為大量域(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。

任何幫助將不勝感激。

那是很多域:)

好的 - 您遇到的 BIND 及其平面文件配置方法存在固有問題;它沒有規模。我認為您在 7 分鐘內啟動它實際上做得很好,我聽說相同數量的域需要超過 30 分鐘。

推薦的解決方案是為域配置遷移到數據庫支持的解決方案。在整體性能方面,每秒最大查詢數會稍微慢一些(可能會降低 15%),但它應該會大大提高啟動性能。

自從我用 BIND 做這件事已經有一段時間了,但是有一些更新檔可以讓它使用 DNS。也許有完整的軟體包可用,我不知道。我記得它的一個問題是它為每個 Bad(tm) 域建立了一個新的 MySQL 連接。

我實際上建議的是嘗試針對此類事情進行優化的替代 DNS 伺服器。我選擇了 PowerDNS 作為以前的解決方案。它速度很快,其設計架構已針對數十萬到數百萬個域進行規劃,當然還有數據庫支持。

如果做不到這一點,我想您可以嘗試將配置文件放在 tmpfs 或其他東西上以將其保存在記憶體中,但我認為這不會大大提高性能,因為您並沒有真正受到 I/O 限制,更多的是 CPU 限制.

引用自:https://serverfault.com/questions/219322