#c #gethostbyname
#c #gethostbyname
Вопрос:
Мой прокси-сервер тратит много времени на разрешение доменных имен, есть ли способ заставить gethostbyname
кэшировать результат?
Комментарии:
1. Слегка касательная, но
gethostbyname
это устаревшая функция, которую вам не следует использовать.man getaddrinfo
.
Ответ №1:
Используйте nscd, имя serivce caching daemon
Комментарии:
1. вы имеете в виду, что после запуска этой службы последующие вызовы
gethostbyname
будут автоматически кэшироваться?2. Это именно то, что он делает. Просто взгляните на справочную страницу. Кэширование отрицательных и положительных результатов может быть настроено отдельно, AFAIK
3. Звучит как глупый системный подход к выполнению чего-то, что с таким же успехом можно было бы выполнить с помощью кэширующего / прокси-сервера имен на localhost…
4. Неправильная точка зрения. Сервер имен кэширования — это самый тяжелый подход к выполнению чего-то, что может быть легко выполнено с помощью nscd 🙂 у nscd действительно есть немного другая область применения, поскольку он кэширует
getpwnam()
иgetgrpnam()
. Очень эффективно позволяет избежать серьезного повреждения мозга, если вы находитесь в сети с отстающим NIS-сервером.