紅旗Linux DNS的最佳化(轉)

BSDLite發表於2007-08-11
紅旗Linux DNS的最佳化(轉)[@more@]  作為Internet基礎服務之一,DNS(Domain Name Server)服務對於整個Internet的正常運轉具有極其重要的作用,DNS服務是否穩定和高效將直接影響使用者使用網路的效率。BIND(Berkeley Internet Name Domain)是目前使用最廣泛的域名伺服器軟體,在該領域處於統治地位。為了提升BIND的效能,一個重要的方法就是針對BIND及其所依賴的作業系統和程式庫等軟體做相應的最佳化和配置。
在紅旗Linux DC Server5.0上,對DNS有許多有效的最佳化方法。下面將只簡單的介紹其中4種對DNS效能有較大幅度提升的方法。並以QPS(query per second)作為評估DNS服務效能的標準。來量化效能提高的幅度。
方法一:改變編譯選項;BIND預設的編譯選項中有個選項為“—O2”,該為“—O3”後,效能的提升幅度如下表1。
表1:測試結果對比表
編譯引數 O2 O3
QPS 6648 7113
效能提升 4%


  方法二:ICC編譯器;由於Intel公司和紅旗公司在ICC編譯器專案上有很好的合作關係,據我們的測試,對於應用軟體的編譯,使用ICC編譯器相對於GCC編譯器有程度不等的提升。最樂觀的情況下會有20%以上的效能提升。下表2為是用ICC編譯器編譯BIND的測試結果,編譯器版本:Intel ICC-9.0。使用者如果認為自己做麻煩的話,可以向紅旗技術支援索要編譯好的二進位制包。
表2:ICC編譯結果對比表
編譯器 GCC-3.4.3 ICC-9.0
QPS 6648 7758
效能提升 16.7%


  方法三:ICC核心;如上方法二中說明了Intel ICC與紅旗的關係。因此紅旗Linux DC Server5.0也是目前市場上所有Linux發行版中唯一一個帶有ICC核心的。完全安裝DC Server5.0後,gurb選項中就有icc核心的引導項。
經過測試使用ICC核心執行DNS服務,效能也有少量的提升。如下表3。
表3:ICC核心測試結果表
編譯引數 Kernel-2.6.9-11.19AX Kernel-2.6.9-11.19AX_Icc
QPS 6648 6781
效能提升 2%


  方法四:調整DNS服務執行緒數;目前使用的BIND版本基本上都支援多執行緒(啟動named後,用命令ps –eLF | grep named檢視),但是預設的執行緒數並不一定是最好的。因此調整服務的執行緒個數來使當前硬體達到最大效能是很有必要的。
修改方法在 /etc/rc.d/init.d/named 服務啟動檔案中中前面加入OPTIONS=“-n NUM”一行,NUM為指定程式數。然後啟動服務用上述命令檢視是否是設定的執行緒數,然後透過BIND自帶的測試工具queryperf(在BIND原始碼包的bind-VERSION/contrib/queryperf/目錄下)來測試自己DNS伺服器的最大QPS。不同的硬體的測試結果也不一樣。一般提高的幅度還都比較大。因此使用者需要耐心測試DNS服務的執行緒數。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617542/viewspace-947705/,如需轉載,請註明出處,否則將追究法律責任。

相關文章