Der name service caching daemon, kurz nscd, ist ein Daemon in verschiedenen Unix-artigen Betriebssystemen, u. a. Linux und Solaris, dessen Aufgabe darin besteht, Namensabfragen wie Abfragen auf /etc/passwd, /etc/hosts, /etc/group sowie DNS-Abfragen, die über libc-Funktionen vorgenommen werden, zu cachen, um die Leistung eines Systems zu erhöhen.

Die Konfiguration des nscd erfolgt über die Datei /etc/nscd.conf[1], in der Einstellungen für die verschiedenen Caches für die Nutzer-, Gruppen- oder Namensdatenbanken vorgenommen werden können, z. B. positive-time-to-live etc.

Der Einsatz eines nscd lohnt sich zumeist nur, wenn ein System entweder sehr große Nutzerdatenbanken besitzt oder diese nur über ein Netzwerk abfragen kann. Bei solchen Bedingungen können durch Einsatz des nscd massiv Festplatten- und Netzwerkressourcen eingespart werden[2], bei gleichzeitiger Erhöhung der Schnelligkeit von Namensabfragen. Andererseits verlangsamt ein nscd ein System ohne solche Bedingungen nicht (oder zumindest nicht nennenswert), sodass es sich auf nahezu allen Systemkonfigurationen lohnt, einen nscd zu betreiben.

Konkret gecacht werden Zugriffe auf die System-Datenbanken in /etc/passwd, /etc/group und /etc/hosts, die u. a. über folgende (g)libc-Funktionen durchgeführt werden[3]:

  • getpwnam()[4]
  • getgrnam()[5]
  • gethostbyname()[6] (welches allerdings obsolete ist)
  • getaddrinfo()[7]
  • getnameinfo()[8]

Siehe auch

Bearbeiten
Bearbeiten

Einzelnachweise

Bearbeiten
  1. https://www.kernel.org/doc/man-pages/online/pages/man3/getnameinfo.3.html
  2. Archivierte Kopie (Memento des Originals vom 18. September 2010 im Internet Archive)  Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/www.linux.ncsu.edu
  3. https://www.kernel.org/doc/man-pages/online/pages/man8/nscd.8.html
  4. https://www.kernel.org/doc/man-pages/online/pages/man3/getpwuid.3.html
  5. https://www.kernel.org/doc/man-pages/online/pages/man3/getgrgid.3.html
  6. https://www.kernel.org/doc/man-pages/online/pages/man3/gethostbyname.3.html
  7. https://www.kernel.org/doc/man-pages/online/pages/man3/getaddrinfo.3.html
  8. https://www.kernel.org/doc/man-pages/online/pages/man3/getnameinfo.3.html