歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> 關於Linux >> linux的dns緩存,NSCD服務

linux的dns緩存,NSCD服務

日期:2017/3/1 16:20:24   编辑:關於Linux
linux的dns緩存,NSCD服務  這兩天做壓力測試的時候發現,用webbench壓域名要比壓ip地址慢好幾倍,而且壓域名的時候nginx並發量也很低.反復測試了好多遍,懷疑時間是花在dns解析上.在/etc/hosts中做手動解析: 1 echo "211.157.145.103 m.app518.com" >> /etc/hosts   之後再壓,速度果然正常了.   dns解析為什麼會慢呢?linux的dns緩存有什麼不同呢?上網查了一下發現linux本身是沒有dns緩存的,想使用dns緩存的話需要自己安裝一個服務程序NSCD(name service cache daemon). 1 apt-get install nscd   修改配置文件/etc/nscd.conf,開啟dns緩存,修改這一行 1 enable-cache hosts yes   這個服務除了dns緩存之外還可以緩存passwd,group,servers.這幾個東西的緩存暫時用不到.   重啟nscd服務 1 service nscd restart   之後發現不需要做手動解析,訪問速度回升到用ip地址一樣了. dns緩存在服務器上的作用   在需要通過域名與外界進行數據交互的時候,dns緩存就派上用場了,它可以減少域名解析的時間,提高效率.例如以下情況:   使用爬蟲采集網絡上的頁面數據,   使用auth2.0協議從其他平台(如微博或QQ)獲取用戶數據,   使用第三方支付接口,   使用短信通道下發短信等. dns緩存到底能提升多少性能呢?   首先要看網絡和dns服務器的能力,dns解析越慢,dns緩存的優勢就越大.比如我們在北京用的dns服務器202.106.0.20和google的dns服務器8.8.8.8速度會差不少.   如果dns服務器比較穩定,那它對效率的影響就是一個常數.這個常數有多大呢?   我簡單試了一下.在局域網內進行壓力測試,壓一個nginx下的靜態頁面,使用202.106.0.20這個dns服務器,不用dns緩存.平均一分鐘可以訪問27萬次.壓一個簡單的php頁面,平均一分鐘可以訪問22萬次.加上nscd服務後,靜態頁面平均一分鐘可以訪問120萬次,要快4倍多.php頁面平均一分鐘可以訪問50萬次,快一倍多.   如果是做搜索引擎或是一些代理服務類的項目,比如短信通道,數據推送服務,這個性能提升還是比較可觀的.但在一般的項目中,一台服務器每分鐘發22萬次請求的情況是很少見的,所以這個性能提升也微呼其微.   但在追求極限的道路上,每一小步都至關重要噢~
Copyright © Linux教程網 All Rights Reserved