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万次请求的情况是很少见的,所以这个性能提升也微呼其微.

时间: 2024-11-03 18:17:54

linux的dns缓存,NSCD服务的相关文章

linux系统dns缓存服务nscd

众所周知,Linux本身是不带DNS缓存的. 可以安装nscd来开启linux系统dns缓存. 1.安装: yum -y install nscd 2.修改配置文件: vim /etc/nscd.conf logfile                 /var/log/nscd.log threads                 4 max-threads             32 server-user             nscd debug-level            

如何清空linux的DNS缓存

如何清空linux的DNS缓存 一.Linux下清空DNS缓存 Linux下DNS缓存实现通常有两种方式: 一种是用DNS缓存程序NSCD(name service cache daemon)负责管理DNS缓存. 一种实现DNS缓存则是用Bind来架设Caching Name Server来实现. 如果是清除NSCD上的Cache,可重新启动NSCD服务来达成清除DNS Cache的效果.用这个命令: # service nscd restart 或是 #/etc/init.d/nscd res

Linux系统安装DNS正向解析服务

输入"mount /dev/sr0 /mnt"将光盘挂载,然后输入"rpm -ivh /mnt/Packages/bind-9.7.3-8.P3.el6.i686.rpm"安装DNS服务:之后"vi /etc/named.conf"查看全局配置文件,将53端口开启,并配上本机的IP地址(ipv6暂时用不到,可用#号注释掉),将"localhost"改为"any"允许任意用户访问: 之后输入"vi

清除dns缓存

Linux清除dns缓存命令 /etc/init.d/dnsmasq restart

linux下的DNS缓存服务

最近用户老是反映登陆一台server,出现User authentication failed报错. 我手动重启winbind进程后,登陆恢复正常. authconfig查看配置一栏,有cache information这一项,尝试勾上去,结果重新加载winbind时候出现service nscd加载失败. 百度了得知,nscd是linux环境的DNS缓存服务. 于是,yum install nscd给服务器装上nscd. id xxx,果然提速了非常多!

Linux下提供DNS缓存服务的bind应用的相关配置缓存

DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串.通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析).DNS协议运行在UDP协议之上,使用端口号53. Linux系统提供DNS服务,需要安装bind应用.以下详细说明: 安装配置的准备工作:两台相同版本的Linux虚拟主机.yum安装相同版本的bind应用 我的两台虚拟机地址: 192.1

【Linux】DNS服务-BIND从服务器、缓存服务器、转发服务器配置

环境 操作系统:CentOS 6.5 DNS软件:bind(安装参照:[Linux]DNS服务-BIND基础配置(二)) BIND从服务器 从服务器就是在bind的主配置文件中添加从域example.net的配置信息即可3 1.配置文件位置 /var/named/chroot/etc/named.conf 2.在主配置文件中添加一行域的zone定义: zone "example.net" { type slave;          masters { 120.27.99.64; };

nscd dns 缓存引起的修改hosts 不及时生效

在/etc/hosts文件中添加一个记录,发现ping 主机名后解析不生效,即ping出来的结果和hosts中写的IP是不一样的. 通过strace查看ping命令执行过程:strace -f -F -o /tmp/ping.txt ping  bi.v.addev.com 可以看到ping的整个过程是先连本地的nscd缓存,清理nscd缓存(nscd -i hosts)后发现hosts绑定的IP立即生效. 查看nscd配置文件: /etc/nscd.conf  了解到nscd会缓存三种服务pa

Ubuntu等Linux系统清除DNS缓存的方法

buntu等Linux系统清除DNS缓存的方法 直接说方法: 如果系统下有nscd,那么就直接 sudo /etc/init.d/nscd restart 如果没有也没关系,网上接受的方法大都是 sudo aptitude install nscd sudo /etc/init.d/nscd restart 其实我们也可以直接 sudo /etc/init.d/dns-clean start 来完成的.