Linux 缓存服务 NSCD 使用总结与实践 - Name Service Cache Daemon

发布于:2024-10-24 编辑:匿名 来源:网络

一、简介 NSCD(Name Service Cache Daemon)是一个系统缓存服务,用于缓存常见的名称服务信息,如用户、组、主机名和服务。它可以提高系统的性能,减少对名称服务的频繁查询和网络流量,从而加快系统的响应速度。

NSCD 在许多 Linux 发行版中默认安装,可以使用 systemctl status nscd 命令检查其运行状态。如果需要启动、停止或重新启动 NSCD,可以使用 systemctl start nscd、systemctl stop nscd 或 systemctl restart nscd 命令。

如果在/etc/Hosts中指定了IP解析域名,在实际请求过程中发现没有生效,那么就需要考虑系统中是否存在nscd进程。开启nscd的hosts缓存服务后,会首先搜索nscd缓存表。

如果在缓存表中没有找到并且/etc/hosts中也不存在,那么就会正常发起dns查询。 2. 安装一些发行版。

nscd 是系统内置的(GNB Lib C 库)。如果不是内置或者使用的是最小安装系统,可以直接从软件源安装。

Distro 安装命令 CentOS/RedHatyum install -y nscd Debian/Ubuntuapt-get install -y nscd Arch/Manjaro pacman -Sy glibc Gentoo USE="nscd"emerge --ask glibc Gentoo 必须加上 nscd 的 USE 标记,否则 nscd 包默认不携带。3、nscd.conf参数含义说明。

默认配置文件路径位于/etc/nscd.conf 中。使用grep和sed过滤掉空行和注释后,可以看到默认的配置。

这里,注释掉了每一行的含义: Code Language: shell copy $ grep -vE '^$|^#' /etc/nscd.conf|sed -nr 's/^\s*//gpdebug-level 0paranoia noenable-cache passwd yespositive-time-to-live passwd negative-time-to-live passwd 20suggested-size passwd check-files passwd yespersistent passwd yesshared passwd yesmax-db-size passwd auto-propagate passwd yesenable-cache group yespositive-time-生存组 负生存时间组 60 建议大小组 检查文件组 yespersistent 组 yesshared 组 yesmax-db-size 组自动传播组yesenable-cache 主机 yespositive-time-to-live 主机 yes-time-to-live 主机 负-time-to-live 主机 20suggested-size 主机 check-files 主机 yespersistent 主机 yesshared 主机 yesmax-db-size 主机启用缓存服务 yespositive-time-to-live 服务0 负生存时间服务 20 建议大小服务 检查文件服务 yes 持久服务 yes 共享服务 yes 最大数据库大小服务启用缓存网络组 yes 正生存时间网络组 0 负生存时间网络组 20 建议大小网络组检查文件网络组是持久网络组是共享网络group yesmax-db-size netgroup 这些参数的详细说明可以通过man nscd.conf查看。下面是一些常用参数的解释: 参数说明 debug-level 调试级别,0 表示不输出任何信息 paranoia paranoid 模式,启用 paranoid 模式会导致 nscd 周期性重启。

enable-cache 启用缓存。 Positive-time-to-liveTTL 缓存时间,默认 s。

负生存时间 如果名称服务找不到条目,??则会将其添加到缓存中并标记为“不存在”。此选项设置从缓存中删除不存在的条目后的时间。

密码和主机缓存默认为20秒,组缓存默认为60秒。 suggest-size 设置用于存储缓存项的哈希的大小。

由于这是一个散列,正常应该大于预期缓存的最大条目数,并且应该是素数。默认为条目。

check-files 定期检查 /etc/passwd、/etc/group 或 /etc/hosts(分别用于 passwd、组和主机缓存)的修改时间,如果自上次检查后文件已更改,则使缓存无效。 persist 保留缓存内容,以便在 nscd 重新启动时可以提供服务。

设置偏执模式时很有用。共享 用于服务 nscd 数据库的内存映射与客户端共享,以便客户端可以直接在其中搜索,而不必在每次执行查找时通过套接字询问守护进程。

max-db-size 用于配置 nscd 缓存数据库的最大大小,单位为 Byte。auto-propagate会自动将缓存数据的变化广播给其他进程,以保证缓存数据的一致性。

等待请求的线程数。 logfile 日志文件路径。

server-user是运行用户,即使用哪个用户来运行nscd服务。 4. nscd 命令选项说明 1. -d, --debug 在当前终端下以调试模式运行,可以看到输出的调试日志。

nscd 进程将在当前终端中运行。如果后台已经有nscd服务,可以使用systemctl stop nscd来暂停它。

2. -f, --config-file=NAME 指定nscd的配置文件路径: 代码语言:shell copy nscd -f /etc/nscd.conf 3、 -F, --foreground 在前台运行,不会输出信息被打印到屏幕上。代码语言:shell copy nscd -F。

当然,如果你想后台运行,也可以使用 nohup & 或 screen 来实现,但是 nscd 默认已经被 systemd 控制了,所以不需要做任何额外的事情。这里我们只是展示一下各个参数的作用。

4. -g, --statistics 输出当前配置统计信息,生效后输出各参数选项的配置和缓存命中率统计信息。代码语言:shell copy nscd -g 我这里只配置了hosts缓存: 代码语言:shell copy $ grep -vE '^$|^#' /etc/nscd.conf|sed -nr 's/^\s*/ / gp'debug-level 4paranoia nologfile /var/log/nscd.logenable-cache 主机 yespositive-time-to-live 主机 negative-time-to-live 主机建议大小的主机 check-files 主机 nopersistent 主机 yesshared 主机 yesmax-db - sizehosts 可以看到输出信息参数值全部正确:5、-i、--invalidate=TABLE使指定的缓存失效,后面可以是:passwd、group、hosts、services、netgroup。

例如,要使hosts缓存失效: 代码语言:shell copy nscd -i ports6, -K, --shutdown 终止nscd进程。该选项不会影响systemd管理的nscd服务进程。

代码语言:shell copy nscd -K7, -t, --nthreads=NUMBER 指定要运行的线程数。代码语言:shell copy nscd -t <线程数> 通过/etc/nscd.conf配置文件中的threads选项指定。

5、实际使用:以缓存主机为例。其他表缓存参数没有区别。

/etc/nscd.conf 配置如下: 代码语言:shell copy debug-level 4paranoia nologfile /var/log/nscd.logenable-cache 主机 yespositive-time -to-live 主机 negative-time-to-live 主机建议- sizehosts check-fileshostsnoperstatichostsyessharedhostsyesmax-db-sizehosts 重启nscd服务: 代码语言:shell copy systemctl restart nscd.service 首先验证缓存是否可以命中。对于第一个 ping,nscd 没有相关的缓存条目,因此将其添加到缓存中。

第二次 ping 时,从缓存中获取结果。 1. check-files 在上面的配置中,check-files是关闭的,即当我们修改hosts文件时,不会触发缓存更新。

域名缓存到nscd后,尝试修改/etc/hosts,再次访问域名。发现/etc/hosts不会被访问。

这时我们启用配置文件的check-files选项,重启nscd服务,并清除hosts。缓存: 代码语言: shell copy $cat /etc/nscd.confdebug-level 4paranoia nologfile /var/log/nscd.logenable-cache 主机 yespositive-time-to-live 主机 negative-time-to-live 主机建议大小的主机check-fileshosts yespersistenthosts yessharedhosts yes$ systemctl restart nscd$ nscd -ihosts 再次尝试查看 /etc/hosts 是否会被访问:结果符合预期。

以qq.com为例,nscd进程会监控/etc/hosts。当修改被触发时,旧的缓存条目将被清除。

下次访问时会找到缓存的qq.com域名。然后先去/etc/hosts找到地址并添加到缓存中。

2、dig和nslookup这两个命令处理逻辑不会读取/etc/hosts,也不会去nscd缓存。相反,他们会直接将 dns 查询发送到 /etc/resolv.conf 中配置的 NS。

但实际访问域名时,会使用nscd缓存。缓存不会搜索/etc/hosts。

如果没有找到/etc/hosts,则会正常发起dns查询。使用getent命令来测试域名实际会首先解析到系统中的哪个地址: 代码语言:shell copy getent 那么,当你发现dig和nslookup解析没有问题,但是ping、curl等实际访问域名。

它是另一个IP,如果指定/etc/hosts则没有任何作用。这时就必须考虑nscd缓存和check-files的启用状态。

3、抓包验证:首先通过nscd -ihosts清除缓存条目,然后使用getent或者其他命令访问域名触发DNS解析获取A记录(如下图的三个IP) );此时修改/etc/hosts,由于nscd.conf的check-files开启,检测到/etc/hosts文件的变化后,清除qq.com的缓存条目;此时,我们使用 ping 命令再次触发解析,nscd 没有 qq.com 缓存(前面已经清除了 qq.com 的缓存条目),读取 /etc/hosts 文件,匹配... 1.内网地址,nscd将内网地址添加到缓存中;此时第二次执行getent,将nscd缓存匹配到qq.com..1.,就不会再发起A记录的dns查询请求了。从下图中可以看到整个过程。

6.总结 NSCD的主要功能是缓存名称服务查询的结果,可以加快名称服务查询的速度。查询结果不必每次都从网络或本地DB(/var/cache/nscd)获取,因此在一定程度上是可以利用的。

减少网络和本地数据库的负载。由于此功能,如果缓存的查询结果过时或不准确,则可能会导致应用程序出现错误或安全问题。

此外,如果 nscd 服务失败,可能会导致名称服务查询失败或变慢。同时,nscd可以缓存多种名称服务数据库,包括hosts、passwd、group、services、netgroup等。

对于每个数据库,nscd可以配置其缓存大小、生存时间等参数,以满足不同的需求。总之,nscd是一个优秀的名称服务缓存守护进程,可以提高系统的名称服务性能。

但在实际应用中,需要注意配置参数,避免出现缓存不一致等问题。

Linux 缓存服务 NSCD 使用总结与实践 - Name Service Cache Daemon

站长声明

版权声明:本文内容由互联网用户自发贡献,本站不拥有所有权,不承担相关法律责任。如果发现本站有涉嫌抄袭的内容,欢迎发送邮件 举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。

标签:

相关文章

  • 沃峰科技助力企业客户服务升级,全面解决全国门店运维问题

    沃峰科技助力企业客户服务升级,全面解决全国门店运维问题

    .wp-block-column h3{margin-left:0} 在快速发展的商业环境中,企业客户服务始终是关键竞争力一。 然而,全国不少企业在门店运维服务中面临数字化系统缺失、智能化不足、线上线下分离等一系列挑战,直接影响服务效率和客户满意度。 针对这些痛点,沃峰科技推出了一整套覆盖全

    06-18

  • 诺初美创获数千万元天使轮融资,时代伯乐、莱斯创投联合投资

    诺初美创获数千万元天使轮融资,时代伯乐、莱斯创投联合投资

    投资圈(ID:pedaily)据6月8日消息,跨境智能家居品牌“诺初美创”已近期完成数千万元天使轮融资。 本轮融资由时代伯乐和莱斯创投共同投资。 本次募集资金将主要用于新产品研发。 诺初美创于今年8月上台。 面向25-45岁的家庭消费者,专注于家庭消费场景的产品创新和品牌运营

    06-17

  • 重庆两江新区设立4支新产业基金 总规模45.5亿

    重庆两江新区设立4支新产业基金 总规模45.5亿

    据投资界9月22日消息,重庆两江战略基金举办重点合作项目专场签约活动,设立4支新产业基金,并签约5个投资协议。 总投资规模45.5亿元。 签约项目涵盖大健康、智能制造、新基建、航空航天、人工智能、国际贸易、数字经济等多个产业领域,将助力两江新区进一步深化大数据智能创

    06-17

  • Xilinx 首席执行官概述公司新愿景和战略蓝图

    Xilinx 首席执行官概述公司新愿景和战略蓝图

    2020 年 3 月 19 日,加利福尼亚州圣何塞 — 全球自适应和智能计算领导者 Xilinx, Inc.(纳斯达克代码:XLNX)总裁兼首席执行官(首席执行官彭维克今天透露了公司的未来愿景和战略蓝图。 Peng的愿景是为Xilinx带来新发展、新技术和新方向,打造“自适应计算加速平台”。 在这

    06-06

  • 小家电品牌“豆禾科技”获近亿元A轮融资,

    小家电品牌“豆禾科技”获近亿元A轮融资,

    深耕供应链的小家电品牌“豆禾科技”已完成近亿元A轮融资。 本轮融资由鸿章资本投资,Verity Capital 跟投。 独家财务顾问。 本轮融资将主要用于产品研发、供应链升级、企业信息化建设等。

    06-17

  • 喝了还能降解的“食用标签”让假酒、假药无处藏身

    喝了还能降解的“食用标签”让假酒、假药无处藏身

    食品药品安全时刻关系着人们的生活。 然而,各类假冒伪劣产品始终令人防不胜防。 想要辨别真伪,可能需要有“火眼金睛”,但显然不可能每个人都具备这样的能力。 然而,在现代社会,你可以用科技来辅助。 ▲ 图片来自:Unsplash 美国印第安纳州Purdue大学和韩国国家农业科学

    06-21

  • Whole House Premium对美国第一贸易公司进行数百万美元战略投资

    Whole House Premium对美国第一贸易公司进行数百万美元战略投资

    据投资界8月7日消息,国内一站式家居软装解决方案Whole House Premium,近期又有新动作。 他向美国第一家贸易公司First Trade投资100万,并正式成为First Trade的股东。   全屋优品创始人周志胜介绍,公司已完成1万元B轮融资。 全屋优品成立仅两年,就以其对市场整体专业的

    06-18

  • 台积电抢购EUV光刻机加速7nm-5nm量产进程

    台积电抢购EUV光刻机加速7nm-5nm量产进程

    日前,荷兰半导体设备制造商ASML(阿斯麦)在财报发布会上表示,ASML将采用极紫外光刻机(EUV) 2020年,年出货量从18台增至30台,外媒报道称,晶圆代工厂龙头台积电将抢占30台EUV台的一半以上。 这也将使台积电成为今年的第一。 包含EUV技术的增强型7纳米工艺可于第一季度中

    06-06

  • 挑战闲鱼、转转,京东正式推出“拍拍二手”,会扰乱二手车市场吗?

    挑战闲鱼、转转,京东正式推出“拍拍二手”,会扰乱二手车市场吗?

    二手交易平台以“焕然一新”迎接新玩家。 12月21日,刘强东宣布京东正式上线“拍拍二手”品牌。 它将采用平台化运营思路,整合回收、检测、再加工、销售等逆向供应链资源,高举“品质二手”大旗。 将京东联盟生态拓展至二手商品交易领域。 拍拍二手是由拍拍网发展而来,拍拍网

    06-17

  • 徐小平:创业者看不起英雄,不愿意给他钱

    徐小平:创业者看不起英雄,不愿意给他钱

    在天使来华“两会大众创业”年度盛典上,徐小平回忆起一年来令他印象深刻的一件事: 2018年10月在北大演讲时,一名学生告诉他,学生中存在着职业鄙视链:在四大工作的人鄙视在快消工作的人,在咨询工作的人鄙视在四大工作的人,在投行工作的人鄙视在咨询工作的人,在PE工作的

    06-18

  • 超过110亿元!北汽新能源汽车创下行业最大单笔融资,为何全部退出……

    超过110亿元!北汽新能源汽车创下行业最大单笔融资,为何全部退出……

    过亿的融资金额对于新能源来说算大吗?    据投资界8月14日消息,北汽新能源今日正式宣布,公司已完成总额1800万元B轮融资,中国信达、中基投资、兴旺产业园、国轩投资共14家投资者参与了本轮融资。   创下新能源汽车行业单笔最大融资纪录,并已在筹备IPO。    据了解

    06-18

  • 市值破万亿,王传福表弟一次性返还5万倍

    市值破万亿,王传福表弟一次性返还5万倍

    这是一个里程碑时刻——6月10日,比亚迪股价创历史新高,市值首次突破万亿,成为第一个加入万亿美元市值俱乐部的中国人。 汽车公司。 早在2009年,29岁的王传福在深圳创立了比亚迪。 从一块小小的手机电池起家,后来打造了一个巨大的新能源汽车版图:新能源汽车、动力电池、半

    06-17