NSCD是服务缓存守护进程,主旨在于提高客户端访问速度。它以服务的形式存在系统中
原理
NSCD(Name Service Cache Daemon)缓存passwd、hosts、group三类信息。DNS服务器在针对大流量解析时在没有缓存机制的情况下会一直等待,直到收到结果的返回,这样往往会显的“措手不及”(延时高,甚至有可能被限制访问)。因此在DNS服务其中设立一个缓存机制,以此达到两点效果:
1、优化DNS相应速度
2、减少DNS服务器对公网的依赖
配置文件
nscd缓存服务的配置文件是/etc/nscd.conf
其中所提到的三个组件(passwd、group、hosts),会分别记录三个库,对应/etc/passwd,/etc/hosts,/etc/resolv.conf。每个库保存两份文件,一份是找到记录的,一份是没有找到记录的。每一种缓存都保存有生存时间(TTL)
参数解释
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的缓存大小,以字节为单位
日常操作
nscd -g:可以看到当前nscd服务的配置信息
清空各个组件的缓存条目:
nscd -i passwd
nscd -i group
nscd -i hosts
领取专属 10元无门槛券
私享最新 技术干货