2014-03-04 81 views
0

簡稱:通過DNS緩存提升性能?

人會如何創建一個Linux系統(Ubuntu的),這樣普通的查詢可以運行得更快的本地DNS緩存,是不是就有可能清除呢?

緩存應該在第一次查詢時填充,而不是手動創建。

背景:

有一個網絡服務器起來,這使得連接本身,因爲該數據庫目前是一樣的(虛擬)機上的雲。爲了使未來的數據庫更容易在另一臺服務器上進行擴展,我只需將web服務器指向諸如database.example.com之類的地址,並將DNS記錄設置爲127.0.0.1即可。該計劃是,我可以簡單地更改DNS記錄,一旦一切都被遷移了。這可能看起來只是網絡和數據庫的矯枉過正,但也會有其他類型的服務器(redis,node.js等)

問題是,當我使用主機名版本時,它會很慢session_start爲5-10秒)。當我使用IP地址(即127.0.0.1)時,它非常快(幾毫秒)。

我似乎很清楚問題在於DNS,我相信本地緩存是一個很好的解決方案,因爲它可以讓我在一個地方管理它,而不必一步一步地瀏覽系統的不同部分並更改配置。

+0

這是一個Windows這種情況下,服務器?如果是這樣的話,你可能會發現禁用IPv6會使它變得更快 - 在後IPv6版本的Windows(我認爲Server 2008以後)中存在一個問題,那就是它總是會首先嚐試執行IPv6查找 - 通常這表現爲5 - 10秒延遲,所以我建議它:) –

+0

linux/ubuntu - 編輯上面,以反映 – davidkomer

回答

0

安裝的dnsmasq

apt-get install dnsmasq 

鎖定下來只本地主機添加以下/etc/dnsmasq.conf

listen-address=127.0.0.1 

啓動服務並驗證它是否正在運行

service dnsmasq start 
dig www.google.com @127.0.0.1 

編輯/etc/resolv.conf添加以下內容作爲您的第一行

nameserver 127.0.0.1 

並刪除選項如果存在旋轉。

注意,你可能有一些腳本自動重寫/ /etc/resolv.conf中改變它,你就必須改變這些,以及(即dhclient或者在/ etc /網絡/接口)