2026年11月1日 · 今日 0 帖 · 会员 6.1万 · 主题 17.4万
登录 · 注册 · 游客,欢迎随便逛逛
返回版块
1000
Lv9有为九子能等级图标
勋章勋章勋章勋章勋章
帖子
9.3万
回复
2,089
积分
60.3万
注册
2006-12-06
[怀旧国机]

linux的dns缓存,NSCD服务

[复制链接]
查看 168 回复 2
楼主 发表于 | 只看该作者
4 人收藏

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

  但在追求极限的道路上,每一小步都至关重要噢~

登录回复
5594
Lv9有为九子能等级图标等级图标等级图标等级图标等级图标等级图标等级图标等级图标
勋章勋章勋章勋章勋章勋章勋章勋章+2
帖子
51
回复
2,554
积分
314.4万
注册
2011-01-03
1 楼

我顶。。

5594
Lv9有为九子能等级图标等级图标等级图标等级图标等级图标等级图标等级图标等级图标
勋章勋章勋章勋章勋章勋章勋章勋章+2
帖子
51
回复
2,554
积分
314.4万
注册
2011-01-03
2 楼

好贴顶!顶死楼主!

登录后可以回复这个帖子。旧账号可使用原密码登录。

登录 注册新号
← 返回版块