linux的dns缓存,NSCD服务(转)

发布于:
分类: 服务器技术 Tagged

这两天做压力测试的时候发现,用webbench压域名要比压ip地址慢好几倍,而且压域名的时候nginx并发量也很低.反复测试了好多遍,怀疑时间是花在dns解析上.在/etc/hosts中做手动解析:
1
echo “192.168.1.12 blog.mengliwei.net” >> /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)获取用户数据,
使用第三方支付接口,
使用短信通道下发短信等.

4 comments

留下评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注