首页 > ubuntu 14.04 64 bit上开启nscd服务缓存加速及清除dns缓存

ubuntu 14.04 64 bit上开启nscd服务缓存加速及清除dns缓存

简介

linux本身是没有dns缓存的,想使用dns缓存的话需要自己安装一个服务程序NSCD(name service cache daemon). 

Nscd会缓存libc接口(比如 getpwnam(3), getpwuid(3), getgrnam(3), getgrgid(3), gethostbyname(3))发起的名称服务的请求。

nscd缓存三种服务passwd, group, hosts,所以它会记录三个库,分别对应源/etc/passwd, /etc/hosts 和 /etc/resolv.conf每个库保存两份缓存,一份是找到记录的,一份是没有找到记录的。每一种缓存都保存有生存时间(TTL).

如果您已经在本地缓存了不正确的 DNS 条目,那么您需要清空您的缓存来使 DNS 客户端提出新的 DNS 请求并更新解析结果。当然,您也可以等缓存的 DNS 条目过期以后让系统自动冲掉该条目……这通常需要24个小时。

在 Ubuntu 中冲掉 DNS 缓存的方式是重新启动 nscd 守护程序。



安装

sudo apt-get install nscd //Ubuntu



yum install nscd   //CentOS

这里以在Ubuntu 14.04 64bit上的安装为例, 截图如下:





配置

默认的配置文件是/etc/nscd.conf,通过编辑/etc/nscd.conf文件,在其中增加如下一行可以开启本地DNS cache:

enable-cache hosts yes

配置文件内容如下



相关参数的解释如下:



logfile debug-file-name

指定调试信息写入的文件名。

debug-level value

设置希望的调试级别。

threads number

这是启动的等待请求的线程数。最少将创建5个线程。

server-user user

如果设置了该选项,nscd将作为该用户运行,而不是作为root。如果每个用户都使用一个单独的缓存(-S参数),将忽略该选项。

enable-cache service

启用或禁用制定的 服务 缓存。

positive-time-to-live service value

设置 service 在指定缓存中正的项目(成功的请求)的TTL(存活时间)。 Value 以秒为单位。较大的值将增加缓存命中率从而减低平均响应时间,但是将增加缓存的一致性问题。

negative-time-to-live service value

设置 service 在指定缓存中负的项目(失败的请求)的TTL(存活时间)。 Value 以秒为单位。如果存在由不在系统数据库中的uid(用户ID)(例如在以root身份解包linux 内核源代码时)所拥有的文件将明显改善性能;应该维持较小的值以降低缓存一致性问题。

suggested-size service value

这是内部散列表的大小, value 应该保持一个素数以达到优化效果。

check-files service

启用或禁用检查属于指定 服务 的文件的改变。这些文件是 /etc/passwd, /etc/group, 以及 /etc/hosts。



开启/停止/重启nscd服务

sevices nscd start | stop | restart





nscd 服务查看和清除

默认该服务在redhat或centos下是关闭的,可以通过services nscd start开启。缓存DB文件在/var/db/nscd下。可以通过nscd -g查看统计的信息,这里列出部分:



清除缓存

nscd -i passwd

nscd -i group

nscd -i hosts

除了上面的方法,重启nscd服务同样可以达到清理cache的目的。



如果系统下有nscd,那么就直接

sudo /etc/init.d/nscd restart

如果没有就安装

sudo apt-get install nscd

sudo /etc/init.d/nscd restart



service nscd restart



其实我们也可以直接

sudo /etc/init.d/dns-clean start

来完成的。



参考文献

[1].http://linux.about.com/library/cmd/blcmdl8_nscd.htm

[2].http://www.361way.com/linux-nscd-dns-cache/4265.html

更多相关:

  • (给DotNet加星标,提升.Net技能)转自:HueiFengcnblogs.com/yyfh/p/12361255.html前言本章将介绍客户端缓存将介绍浏览器缓存和服务端缓存,使用浏览器缓存将减少对web服务器的请求次数,同时可以提升性能,避免重复的运算浪费。ASP.NET Core对于HTTP缓存分为两种:客户端(浏览器缓...

  • 事先说明 标题说是“坑”,并没有说是“bug”,也就是多半是玩的姿势不对。 线上问题 我司(lecloud)目前线上大小文件都是使用的ATS 6.2.1版本,昨天运维反馈有文件超过缓存时间并不回源刷新,截图如下: 现象就是:age超过max-age了,过期了不更新! 另外需要说的一点就是,源站是可以正常回源的。 复...

  • 将追加的主题 内存常驻副本(resident alternates)缓存对象刷新(object refresh) 缓存一致性(Cache Consistency) ATS缓存是完全一致性的,除非你不小心踢掉电源,让ATS突然关机。如果要禁用硬盘驱动器自身的缓存,你需要使用下面的命令 hdparm -W0 缓存系统会校验可用...

  • ATS名词术语 副本(alternate) 缓存对象(cache object)的一种变体,最初创建该术语是为了处理HTTP协议中的VARY机制(RFC2616#sec14.44),现在多用于其它的目的。一个对象的所有副本必须以某种方式等价,也就是说,它们是同一个流的等价形式,最常用的一个例子就是,一个流既有普通版本也有压缩版本。...

  • 该博文翻译自参考文献[1] parent.config parent.config文件识别用在缓存分级中的父代理,用这个文件去执行下面的配置: 搭建父分级缓存,兼容多父级缓存和父级缓存故障转移配置指定的URL请求避开父代理缓存 仅当父缓存选项开启后,ATS才能使用parent.config文件。 当你修改parent.conf...

  • DNS信息是由/etc/resolv.conf提供的,它是每次开机时,由/sbin/resolvconf生成的 /etc/resolv.conf是/run/resolvconf/resolv.conf的符号链接 错误的修改方法 直接修改/etc/resolv.conf文件添加DNS的方法并不可行,因为重启系统后,该配置文件...

  • 配置之前清空所有服务器防火墙规则 iptables -F 关闭selinux: 1、/usr/sbin/sestatus -v      ##如果SELinux status参数为enabled即为开启状态 SELinux status:                 enabled 2、getenforce            ...

  • 在Ubuntu系统网络设备启动的流程中,会依赖/etc/network/interface的配置文件初始化网络接口,所以直接在/etc/network/interface之中配置好对应的dns服务器会最先写入/etc/resolv.conf。所以我们可以在其中添加如下内容: dns-nameservers 180.76...

  • RHEL/CentOS通用性能优化、安全配置参考   本文的配置参数是笔者在实际生产环境中反复实践总结的结果,完全适用绝大多数通用的高负载、安全性要求的网络服务器环境。故可以放心使用。   若有异议,欢迎联系[email protected]探讨。   提示:强烈建议使用RHEL 5.6/CentOS 5.6及以上版本的系统,否则可能...

  •   这里的环境是centos7版本,openstack K版     1.在各个计算节点设置权限 chmod 755 /var/lib/nova/instances   2.修改各个节点的nova.conf(/etc/nova/nova.conf) vncserver_proxyclient_address=虚拟机IP # v...