Запуская PHP 5.6 на экземпляре EC2 с Apache 2.4.18, я иногда вижу ошибки в журнале при попытке подключиться к базе данных RDS:
PDO::__construct(): php_network_getaddresses: getaddrinfo failed: No address associated with hostname
Проблема кажется специфической для php_network_getadresses
изнутри Apache. Все, что находится за пределами Apache, может легко разрешить хост, и тестовый PHP-скрипт, работающий внутри Apache, который использует gethostbyname
также может успешно выполнять поиск в DNS.
Пока система не была активна достаточно долго, чтобы я мог различить реальную картину отключений, но я думаю, что они мощь быть связанным с окном обслуживания RDS в ночное время.
Я видел других пользователей спроси то же самое, как в SF, так и на форумах AWS и в других местах, но «решение», похоже, состоит в том, чтобы время от времени перезапускать Apache. Однако я нахожу это очень неудовлетворительным, поэтому мне интересно, есть ли лучшие канонические решения для этого?
Согласно AWS, AWS устанавливает ограничение на скорость запросов DNS для защиты от шумных соседей. Таким образом, они могут обеспечить стабильную производительность до этого предела, в отличие от отсутствия ограничений, но с риском нестабильной производительности.
Настройте кеш DNS на стороне экземпляра или используйте внешний DNS-сервер, например Google Public DNS решает проблему. В вашем случае вы можете добавить следующие строки в файл /etc/resolv.conf в качестве обходного пути: сервер имен 8.8.8.8 и сервер имен 8.8.4.4