nscd

作用:

Nscd is a daemon that provides a cache for the most common name service requests

可以缓存passwd,group,hosts,services,netgroup,其中如果用于缓存dns配置如下

enable-cache hosts yes
positive-time-to-live hosts 3600
negative-time-to-live hosts 20
suggested-size hosts 211
check-files hosts yes
persistent hosts yes
shared hosts yes
max-db-size hosts 134217728

cachedb 位于:

/var/cache/nscd/hosts

查询

nscd -g 

1.安装

apt-get install nscd

dns缓存在服务器上的作用

  在需要通过域名与外界进行数据交互的时候,dns缓存就派上用场了,它可以减少域名解析的时间,提高效率.例如以下情况:
  使用爬虫采集网络上的页面数据,
  使用auth2.0协议从其他平台(如微博或QQ)获取用户数据,
  使用第三方支付接口,
  使用短信通道下发短信等.

配置:

除了/etc/nscd.conf需要配置以外,还需要配置/etc/nsswitch.conf

hosts: files dns 改为

hosts: cache files dns

一种情况:

爬虫给予dns压力太大,导致解析错误情况下:

使用nscd进行DNS缓存

解决方法:

1.在爬虫上安装nscd,修改配置文件

2.修改/etc/nsswitch.conf文件

3.在/etc/resolv.conf文件中添加另一台dnsserver,实现dns响应的分担

使用dig直接进行DNS查询

使用getent hosts host.example.com可以测试是否使用

两个参考 

 http://my.oschina.net/phptiger86/blog/138507

http://unix.stackexchange.com/questions/6238/dns-queries-not-using-nscd-for-caching