Как закэшировать DNS для запросов из PHP CURL?

На сервере очень часто идёт работа с DigitalOcean Spaces, это аналог Amazon S3, совместимый API. Запускаются короткие процессы PHP, которые работают (PUT/GET/DELETE) с отдельными файлами в хранилище.

Получается, на каждый запуск выполняется новый DNS запрос, чтобы создать соединение с URL бакета? На миллионах запросов накопится заметная задержка.

Как кэшируются DNS запросы, или как их заставить кэшироваться? На уровне OS, PHP или в будущем Docker контейнера.

Серверы Centos и Debian, PHP 5.6, Laravel, AWS php-sdk. Собираюсь завернуть "рабочих" в Docker, но пока без него. Переход на object storage только планирую и пробую. Сейчас данные все ещё хранятся на локальной файловой системе и расшарены по NFS.
  • Вопрос задан
  • 464 просмотра
Пригласить эксперта
Ответы на вопрос 2
saboteur_kiev
@saboteur_kiev Куратор тега Linux
software engineer
При DNS запросе происходит следующее:
1. Проверяется /etc/hosts
2. Проверяется локальный кеш
3. Выполняется DNS запрос на ваш DNS сервер (он все это повторяет, если что, делает запрос к своему DNS серверу и так до рута)

Соответственно самые простые варианты - или пропишите в запросах айпишники, или пропишите в /etc/hosts
Или обычный DNS кеш клиента сам разберется.
Ответ написан
@MereMortals
Используй nscd, он замечательно кеширует DNS запросы
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы