- 论坛徽章:
- 1
|
原帖由 ailms 于 2006-7-14 10:01 发表
请问 abel 兄,powerdns 和 bind 在性能上有什么差别呢?
又是什么导致它们之间的差别呢?采用 db 难道比读取文本要慢吗?
如果你查的是 www.chinaunix.net 的話
powerdns 是 query 時去查 db, 查詢 db 時不是只查 www 的 A 記錄,還要查 NS 記錄,依據 powerdns 的架構,他會先查有沒有 domain_id, 所以整個查下來,為了查詢一個 www.chinaunix.net , 最少會引發三次的 db select (這是最小的可能了), 若沒有 www.CU.net 的話,那它就會去掉 www, 改以 wildcard 替代 ...再沒有再去掉一層 ...如以不幸的話可能 5-8 次的 db query 都是有可能的,所以這種狀況下,用的 db 的效能就是關鍵,
個人測試過,以一台中等機器只跑 powerdns + mysql , 每秒最多只能千次 query (查詢的記錄都有),超過1000
大概機器就要死不活了,所以內部使用是可以,拿到抬面就不要讓人家知道是 powerdns , 不過這大概也不可能的,
用個 fpdns 一測就知道是 Powerdns 了
Powerdns 的好處大概只在 realtime update ,即使關掉 recursion 也不能避免此一問題 (query to dead)
至於 bind 雖是 text file , 但是它其實是在 named start 時就巳經把文本都載了 RAM 了,所以只是單純的 process 問題 (BIND8 用 hash table, Bind9 用 Binary Tree), 所以只在 CPU 及 RAM 間的操作而以,不會再有什麼 I/O 問題 (log 除外)
這問題只要弄清楚 IXFR 的作用,可以避免個人所提及的問題點,更能使用 view , IXFR 的同步只在於差異化
的部份,所以 .com 才能在3千萬的 domain 的情況下,讓所有的 DNS zone file 每 15 秒更新一次
support-ixfr yes;
provide-ixfr yes;
你用 usupdate 更新 master, 那其餘的 slave (BIND8.2.3 及 BIND9 以後版本)在同時間就會做同步了
同步的內容只在 update 的 RR 資料,而不是笨笨的將所有的 zone file 內容同步 |
|