Как закэшировать 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.
  • Вопрос задан
  • 438 просмотров
Пригласить эксперта
Ответы на вопрос 2
saboteur_kiev
@saboteur_kiev Куратор тега Linux
software engineer
При DNS запросе происходит следующее:
1. Проверяется /etc/hosts
2. Проверяется локальный кеш
3. Выполняется DNS запрос на ваш DNS сервер (он все это повторяет, если что, делает запрос к своему DNS серверу и так до рута)

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

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽