База знаний по Open Source
Yandex поиск по всему сайту
Авторизация

Nscd – это демон (сервис), который предоставляет кэш для наиболее общих запросов службы имен. По умолчанию, поведение демона кэша определяет файл с настройками /etc/nscd.conf.

Установка сервиса (демона) nscd в Linux Ubuntu:

sudo apt install nscd
sudo service nscd restart

Можно посмотреть, что вообще происходит с кешем:

sudo ncsd -g

и список закешированных доменов

sudo strings /var/cache/nscd/hosts

Допустимыми службами являются: passwd, group или hosts. Nscd ничего не знает о протоколах служб. Это также означает, что если вы изменяете .etc/resolv.conf для DNS запросов, nscd продолжит использование старых данных, если вы настроили в файле /etc/nsswitch.conf поиск узлов через использование DNS. В этом случае, вам нужно перезапустить nscd.

Nscd предоставляет кэширование для баз данных passwdgroup, и hosts через стандартные интерфейсы libc, такие как getpwnam, getpwuid, getgrnam, getgrgid, gethostbyname, и другие.

Каждый кэш имеет для своих данных отдельное TLL (time-to-live – время жизни); изменения в локальной базе данных (/etc/passwd, и других) приводит к тому что кэш становится неправльным в течении пятнадцати секунд.

Nscd содержит два кэша на каждую категорию: попаданий (найденный элемент) и промахов (ненайденные элемены). Каждый кэш имеет для своих данных отдельный TTL (время жизни). Эти параметры настраиваются в /etc/nscd.conf. Для того, чтобы программа использовала кэширование, nscd должен быть запущен перед ней. Таким образом NSS кэш может решить проблему отключения сети, благодаря тому, что информация о пользователе будет получаться из кэша, пока он не устареет, даже если нет соединения с LDAP.

Файл /etc/nscd.conf читается демоном nscd при его запуске. Каждая строка задаёт или атрибут и значение, или атрибут, службу и значение. Поля разделяются или пробелами или символами табуляции. Символ # (решётка) говорит от начале комментария; следующие за ним до конца строки символы, не интерпретируются nscd.

logfile debug-file-name

Задаёт имя файла, в который будет записываться отладочная информация.

debug-level value

Устанавливает необходимый уровень отладки.

threads number

Здесь указывается число тредов (нитей) которые запускаются для ожидания запросов. Всегда создаются как минимум пять тредов.

server-user user

Если эта опция установлена, nscd будет запущен от указанного пользователя, а не от пользователя root. Если используются отдельные кэши для каждого пользователя (ключ -S), то данная опция игнорируется.

enable-cache service <yes|no>

Разрешает или запрещает кэш заданной службы service .

positive-time-to-live service value

Устанавливает время жизни (TTL) для положительных (успешные запросы) записей в заданном кэше для службы service . Значение Value задаётся в секундах. БОльшие значения увеличивают вероятность повторного использования запрошенных данных и уменьшают время ответа, но также увеличивают проблемы с достоверностью кэша.

negative-time-to-live service value

Устанавливает время жизни (TTL) для отрицательных (неуспешные запросы) записей в заданном кэше для службы service . Значение Value задаётся в секундах. Может значительно увеличить производительность, если существуют некоторые файлы, которыми владеет пользователь, у которого идентификатор пользователя (UID) не существует в системных базах данных (например распаковка tar’ом из под суперпользователя root исходных текстов ядра); должно бы быть небольшим, чтобы уменьшить проблемы достоверности кэша.

suggested-size service value

Задаёт размер внутренней хэш-таблицы, значение value для оптимальной эффективности должно бы быть простым числом.

check-files service <yes|no>

Разрешает или запрещает проверку изменений для файлов, принадлежащих к заданной службе service . Это файлы /etc/passwd/etc/group, и /etc/hosts.