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数串.通过主机名,最 ...
随机推荐
- 理解Android安全机制
本文从Android系统架构着手,分析Android的安全机制以SE Android,最后给出一些Android安全现状和常见的安全解决方案. 1.Android系统架构 Android采用分层的系统 ...
- js的Object和Function
自己闲的没事干,自己想通过js的了解写一个Function和Object之间的关系,可以肯定的是我写错了,但是希望可以有所启发. Function和Object Function.__proto__ ...
- 基于FPGA的通信系统实验
伪随机信号发生器 1.伪随机信号发生器原理 伪随机信号发生器又叫PN序列发生器或者是m序列发生器.m序列是一种线性反馈寄存器序列,m序列的产生可以利用r级寄存器产生长度为2^r-1的m序列,该实验中采 ...
- Paris Traceroute
Paris Traceroute is a new version of the well-known network diagnosis and measurement tool. Why shou ...
- CSS与JQuery的相关问题
文字隐藏:p div里面的文字过长时隐藏文字: overflow:hidden; text-overflow:ellipsis; white-space:nowrap; --------------- ...
- Linux配置VNC实现远程图形化操纵
问题描述 有些时候需要用到图形化,其实可以通过其他途径实现.但是懒惰的就喜欢VNC,总的老说都是需要图形组件的 问题解决 在Centos测试 一.图形化的Linux 01.安装 rpm ivh vn ...
- linux 系统下 android studio 获取SHA1
百度地图申请key的时候需要填写包名和SHA1 包名比较好找可以在 AndroidManifest.xml 文件中找到 SHA1的获取方式有两种可以在android studio 下面选择Termin ...
- 1104关于优化mysql服务器几个参数和思路
转自http://www.cnblogs.com/AloneSword/p/3207697.html 按照从大到小,从主要到次要的形式,分析 mysql 性能优化点,达到最终优化的效果. 利用 min ...
- Spring中配置和读取多个Properties文件
一个系统中通常会存在如下一些以Properties形式存在的配置文件 1.数据库配置文件demo-db.properties: database.url=jdbc:mysql://localhost/ ...
- poj1417 带权并查集 + 背包 + 记录路径
True Liars Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 2713 Accepted: 868 Descrip ...