DNS(二)之构建域名解析缓存
域名解析缓存的必要性
在部署服务的时候,很多程序需要使用域名解析的功能,一般配置/etc/resovl.conf去指定DNS服务器的IP,但是如果程序发起的请求量较大,那么服务器就容易被DNS服务器禁止访问(至于为什么会被禁止,你懂得),同事每次去外网请求DNS解析的话,时延也特别大,乃至发生请求超时的情况,这个是,我们就要配置一个透明的DNS解析缓存服务器,达到的效果如下:
- 优化DNS响应速度 通过缓存DNS的请求结果,后续相同的DNS请求不需要在访问公网的DNS请求便可获得结果,减少了网络访问的延时。
- 减少DNS服务器对公网的依赖 在缓存周期内,相同的DNS请求不再发生到外网的网络通信行为,可以减少短暂的外部网络不可用导致的影响
NSCD安装配置方法
NSCD(Name server caching Daemon 名称服务缓存进程)不需要对应用程序或者解析器做任何修改,/etc/resovl.conf 也不需要做任何变化,对于系统部署的影响最小。因此NSCD成为linux环境最为广泛的域名缓存软件,本次使用该软件作为域名缓存服务,在CentOS6.6上,安装NSCD的方法比较简单,使用yum安装即可,命令如下:
[root@localhost ~]# yum -y install nscd
[root@localhost ~]# ls /etc/nscd.conf
/etc/nscd.conf #nscd的配置文件
我们看看配置文件,我们主要关心下面这几段,yum安装好后在63行-70行:
63 enable-cache hosts yes
64 positive-time-to-live hosts 3600
65 negative-time-to-live hosts 20
66 suggested-size hosts 211
67 check-files hosts yes
68 persistent hosts yes
69 shared hosts yes
70 max-db-size hosts 33554432
参数解释
- enable-cache 指定对DNS解析进行缓存
- positive-time-to-live 对解析成功的DNS结果进行缓存时间
- negative-time-to-live 指对解析成功的DNS结果进行缓存的时间,例如网络故障导致DNS解析失败或者请求的DNS条目没有配置等
- suggested-size 是NSCD内部哈希表的大小,如果缓存条目数量大于默认的211,如大于10倍,那么修改此值。
- check-files 指是否检查/etc/hosts文件的变化
- persistent 重启NSCD进程时是否保留已缓存的条目
- shared 是否允许客户端直接查询NSCD的内存镜像以获得结果
- max-db-size 是指DNS的缓存大小,以字节为单位
启动服务
[root@localhost store]# /etc/init.d/nscd start
验证域名缓存
[root@localhost store]# nscd -g
'''''
hosts cache:
yes cache is enabled
yes cache is persistent
yes cache is shared
211 suggested size
216064 total data pool size
520 used data pool size
3600 seconds time to live for positive entries
20 seconds time to live for negative entries
0 cache hits on positive entries
0 cache hits on negative entries
0 cache misses on positive entries
0 cache misses on negative entries
0% cache hit rate
0 current number of cached values
0 maximum number of cached values
0 maximum chain length searched
0 number of delays on rdlock
0 number of delays on wrlock
0 memory allocations failed
yes check /etc/hosts for changes
[root@localhost ~]# wget -SO /dev/null http://www.baidu.com/ #换不同的域名多wget几次,就发现这数值上去了。
[root@localhost store]# nscd -g
'''''
hosts cache:
yes cache is enabled
yes cache is persistent
yes cache is shared
211 suggested size
216064 total data pool size
520 used data pool size
3600 seconds time to live for positive entries
20 seconds time to live for negative entries
0 cache hits on positive entries
0 cache hits on negative entries
15 cache misses on positive entries
0 cache misses on negative entries
0% cache hit rate
3 current number of cached values
5 maximum number of cached values
0 maximum chain length searched
0 number of delays on rdlock
0 number of delays on wrlock
0 memory allocations failed
yes check /etc/hosts for changes
[root@localhost ~]# nscd -i hosts # 清空hosts当前缓存条目的
DNS(二)之构建域名解析缓存的更多相关文章
- Linux网络学习笔记(二):域名解析(DNS)——以 CoreDNS 为例
个人笔记,观点不一定正确. 适合对 Kubernetes 有一定了解的同学. 前言 最近一直在学习 Kubernetes,但是手头没有个自有域名,要测试 ingress 就比较麻烦,每次都是手动改 h ...
- linux之DNS主域,从域,缓存服务器的架设
DNS主域,从域,缓存服务器的架设 DNS域名系统 组织域 顶级域 域名解析过程迭代递归 DNS(Domain Name System ) 在Internet中使用IP地址来确定计算机的地址. 为了 ...
- 使用Guava cache构建本地缓存
前言 最近在一个项目中需要用到本地缓存,在网上调研后,发现谷歌的Guva提供的cache模块非常的不错.简单易上手的api:灵活强大的功能,再加上谷歌这块金字招牌,让我毫不犹豫的选择了它.仅以此博客记 ...
- 用Linkedhashmap的LRU特性及SoftReference软引用构建二级缓存
LRU: least recently used(近期最少使用算法).LinkedHashMap构造函数可以指定其迭代顺序:LinkedHashMap(int initialCapacity, flo ...
- 转:Java SoftReference 使用构建对象缓存
本文介绍对象的强.软.弱和虚引用的概念.应用及其在UML中的表示. 1.对象的强.软.弱和虚引用 在JDK 1.2以前的版本中,若一个对象不被任何变量引用,那么程序就无法再使用这个对象.也就是说, ...
- 分布式数据存储 之 Redis(二) —— spring中的缓存抽象
分布式数据存储 之 Redis(二) -- spring中的缓存抽象 一.spring boot 中的 StringRedisTemplate 1.StringRedisTemplate Demo 第 ...
- C# 动态构建表达式树(二)——构建 Select 和 GroupBy 的表达式
C# 动态构建表达式树(二)--构建 Select 和 GroupBy 的表达式 前言 在上篇中写了表达式的基本使用,为 Where 方法动态构建了表达式.在这篇中会写如何为 Select 和 Gro ...
- dig与dns基本理论——解析和缓存
DNS(Domain Name System,域名系统)也许是我们在网络中最常用到的服务,它把容易记住的域名,如 www.google.com 翻译成人类不易记住的IP地址,如 173.194.127 ...
- DNS(域名系统)域名解析设置
DNS(Domain Name System,域名系统), 因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串.通过主机名,最 ...
随机推荐
- Javascript 模块化开发上线解决方案
最近又换部门了,好频繁地说...于是把这段时间搞的小工具们简单整理了一下,作了一个小的总结.这次用一个简单业务demo来向大家介绍一下Javascript模块化开发的方式和自动化合并压缩的一些自己的处 ...
- 隐马尔可夫模型(Hidden Markov Model,HMM)
介绍 崔晓源 翻译 我们通常都习惯寻找一个事物在一段时间里的变化规律.在很多领域我们都希望找到这个规律,比如计算机中的指令顺序,句子中的词顺序和语音中的词顺序等等.一个最适用的例子就是天气的预测. 首 ...
- pat1057 stack
超时算法,利用2的特殊性,用2个multiset来维护.单个multiset维护没法立即找到中位数. 其实也可以只用1个multiset,用一个中位指针,++,--来维护中位数. #include&l ...
- 54-locate 简明笔记
在mlocate数据库中搜索条目 locate [option] pattern 参数 pattern 是locate需要搜索的文件名或者正则表达式 选项 -i 忽略大小写 ...
- Alpha版本冲刺现场演示和阶段验收的总结
一共15个组.有13个组参加了今天的现场演示,分别是YZH.Radio Group.FZU5BOYS.静静看.Clean Code.Mod4.F4.For the Dream.Journey of C ...
- MySQL的启动脚本
MySQL的启动脚本#!/bin/bashmysql_port=3308mysql_username="admin"mysql_password="password&qu ...
- Linux_rsylogd日志
Linux_日志管理介绍(一)http://www.cnblogs.com/gossip/p/5972663.html Linux_rsyslogd日志服务(二)http://www.cnblogs. ...
- 【BZOJ 3165】【HEOI 2013】Segment
往区间上覆盖一次函数,做法是用线段树维护标记永久化. 每次都忘了线段树要4倍空间,第一次交总是RE,再这么手残的话考场上就真的要犯逗了. #include<cstdio> #include ...
- git使用相关文章的链接
http://search.fishc.com/cse/search?s=14988791857133860392&q=git&partner=discuz http://bbs.fi ...
- Quality Trimming Via Trimmomatic
已经去除接头(adapter) java -jar trimmomatic.jar PE -threads 20 -phred33 \ left.fastq.gz right.fastq.gz \ l ...