linux nscd怎么开启

服务器   发布日期:2025年03月11日   浏览次数:230

今天小编给大家分享一下linux nscd怎么开启的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

linux nscd是服务缓存守护进程,其英文全称是“Name Service Cache Daemon”,它为NIS和LDAP等服务提供更快的验证;缓存是一项非常重要的技术或机制,缓存的主旨就是提高客户端访问速度。

Linux下开启缓存服务NSCD

NSCD(Name Service Cache Daemon)是服务缓存守护进程,它为NIS和LDAP等服务提供更快的验证。不管是什么系统,缓存是一项非常重要的技术[或机制],缓存的主旨就是提高客户端访问速度。

NSCD命令选项:

  1. # nscd --help
  2. Usage: nscd [OPTION...]
  3. Name Service Cache Daemon.
  4. -d, --debug Do not fork and display messages on the current
  5. tty
  6. -f, --config-file=NAME Read configuration data from NAME
  7. -F, --foreground Do not fork, but otherwise behave like a daemon
  8. -g, --statistics Print current configuration statistics
  9. -i, --invalidate=TABLE Invalidate the specified cache
  10. -K, --shutdown Shut the server down
  11. -t, --nthreads=NUMBER Start NUMBER threads
  12. -?, --help Give this help list
  13. --usage Give a short usage message
  14. -V, --version Print program version


NSCD配置文件:

NSCD配置文件为/etc/nscd.conf,NSCD程序在启动的时候会读取/etc/nscd.conf文件,每一行指定一个属性和对应的值,或者指定一个服务和对应的值,#表示注释。有效的服务设定是:passwd,group,hosts,services,ornetgroup五个。

NSCD配置文件相关参数解释:

  1. #设置日志文件 logfile debug-file-name
  1. #设置debug记录的级别,默认是0 debug-level value
  1. #程序启动时,等待进去请求的处理线程数,至少5个 threads number
  1. #最大线程数,默认32 max-threads number
  1. #nscd程序以哪个用户运行,如果设置了该选项,nscd将作为该用户运行,而不是作为root。如果每个用户都使用一个单独的缓存(-S参数),将忽略该选项。 server-user user
  2. #哪个用户可以请求统计用户 stat-user user
  1. #在一个缓存项被删除之前允许使用的次数,默认是5 reload-count unlimited | number
  1. #是否启用偏执模式,启用会导致nscd周期性重启,默认是no paranoia <yes|no>
  1. #如果启用偏执模式,设置的定期重启nscd的时间间隔,默认是3600秒 restart-interval time
  1. #开启或者关闭服务缓存,默认是no enable-cache service <yes|no>
  1. #为成功请求的元素设置缓存TTL,单位是秒,值越大缓存命中率越高,降低平均响应时间,但会增加缓存的一致性问题 positive-time-to-live service value
  1. #为失败查询元素设置缓存TTL,单位是秒,应保持小值,减小缓存一致性问题 negative-time-to-live service value
  1. #内部的散列表大小,value应该保持一个素数以达到优化效果。默认值是211 suggested-size service value
  1. #启用或者禁用检查文件是否属于指定的服务,这些文件是/etc/passwd、/etc/group、/etc/hosts、/etc/services、/etc/netgroup等 check-files service <yes|no>
  1. #设置缓存在服务器重启后,仍旧能提供缓存服务,在使用偏执模式时有用,默认是no persistent service <yes|no>
  1. #为客户端共享nscd数据库在内存中做的映射,使客户端可以直接搜索,而不用每次都查询守护进行,默认是no shared service <yes|no>
  1. #该数据库的最大大小,单位是bytes,默认是33554432 max-db-size service bytes
  1. #此选项仅使用于passwd和group服务 auto-propagate service <yes|no>


使用NSCD对DNS进行缓存

DNS在服务器上的作用:

在需要通过域名与外界进行数据交互的时候,dns缓存就派上用场了,它可以减少域名解析的时间,提高效率。例如以下情况
使用爬虫采集网络上的页面数据,
使用auth3.0协议从其他平台(如微博或QQ)获取用户数据,
使用第三方支付接口,
使用短信通道下发短信等.

开启NSCD DNS缓存服务的优点和缺点

优点:

本地缓存NDS解析信息,提高解析速度

DNS服务器挂了也没有问题,在缓存服务时间范围内,解析依旧正常

缺点:

DNS解析信息会滞后,如域名解析更改需要手动刷新缓存,NSCD不适合做实时的切换的应用,目前对于依赖DNS切换的服务,建议不要开启DNS缓存。DNS Cache作为普通的DNS解析Cache那是没问题的,如果你使用RDS云服务器,也不建议使用DNS缓存服务。

配置DNS缓存:

通过编辑/etc/nscd.conf文件,在其中增加如下一行可以开启本地DNS Cache

enable-cache hosts yes #这个服务除了dns缓存之外还可以缓存passwd,group,servers

完整配置如下:

  1. enable-cache passwd yes
  2. positive-time-to-live passwd 600
  3. negative-time-to-live passwd 20
  4. suggested-size passwd 211
  5. check-files passwd yes
  6. persistent passwd yes
  7. shared passwd yes
  8. max-db-size passwd 33554432
  9. auto-propagate passwd yes
  10. enable-cache group yes
  11. positive-time-to-live group 3600
  12. negative-time-to-live group 60
  13. suggested-size group 211
  14. check-files group yes
  15. persistent group yes
  16. shared group yes
  17. max-db-size group 33554432
  18. auto-propagate group yes
  19. enable-cache hosts yes
  20. positive-time-to-live hosts 3600
  21. negative-time-to-live hosts 20
  22. suggested-size hosts 211
  23. check-files hosts yes
  24. persistent hosts yes
  25. shared hosts yes
  26. max-db-size hosts 33554432
  27. enable-cache services yes
  28. positive-time-to-live services 28800
  29. negative-time-to-live services 20
  30. suggested-size services 211
  31. check-files services yes
  32. persistent services yes
  33. shared services yes
  34. max-db-size services 33554432
  35. enable-cache netgroup yes
  36. positive-time-to-live netgroup 28800
  37. negative-time-to-live netgroup 20
  38. suggested-size netgroup 211
  39. check-files netgroup yes
  40. persistent netgroup yes
  41. shared netgroup yes
  42. max-db-size netgroup 33554432


NSCD服务查看和清除

NSCD缓存DB文件在/var/db/nscd下。可以通过nscd -g查看统计的信息:

  1. # nscd -g
  2. nscd configuration:
  3. 0 server debug level
  4. 50d 14h 33m 40s server runtime
  5. 5 current number of threads
  6. 32 maximum number of threads
  7. 0 number of times clients had to wait
  8. no paranoia mode enabled
  9. 3600 restart internal
  10. 5 reload count
  11. passwd cache:
  12. yes cache is enabled
  13. yes cache is persistent
  14. yes cache is shared
  15. 211 suggested size
  16. 216064 total data pool size
  17. 544 used data pool size
  18. 600 seconds time to live for positive entries
  19. 20 seconds time to live for negative entries
  20. 280382 cache hits on positive entries
  21. 10047 cache hits on negative entries
  22. 3260 cache misses on positive entries
  23. 474 cache misses on negative entries
  24. 98% cache hit rate
  25. 6 current number of cached values
  26. 52 maximum number of cached values
  27. 2 maximum chain length searched
  28. 0 number of delays on rdlock
  29. 0 number of delays on wrlock
  30. 0 memory allocations failed
  31. yes check /etc/passwd for changes

清除指定类型缓存:

  1. nscd -i passwd
  2. nscd -i group
  3. nscd -i hosts

以上就是linux nscd怎么开启的详细内容,更多关于linux nscd怎么开启的资料请关注九品源码其它相关文章!