php_network_getaddresses: getaddrinfo failed: Временный сбой в разрешении имени

php_network_getaddresses: getaddrinfo failed: Временный сбой в разрешении имени

Я продолжаю очень часто получать эту ошибку:

Severity: Warning --> mysqli::real_connect(): php_network_getaddresses: getaddrinfo failed: Temporary failure in name resolution

Эта проблема решается только после перезапуска сервера. Учитывая, что это происходит на работающем сервере с миллионами запросов ежедневно, перезапуск — не лучший вариант.

[РЕДАКТИРОВАНО]

Я использую Ubuntu 18.04 и подключаюсь к кластеру Aurora на AWS, а код бэкэнда находится на EC2.

@matigo на Askubuntu, похоже, считает, что я достиг предела:

https://askubuntu.com/a/1363447/135086

Поэтому я провел некоторую отладку, чтобы понять, действительно ли я достигаю этого предела в 1024 PPS. К счастью, была статья AWS, которая, кажется, помогла мне это понять,

https://aws.amazon.com/premiumsupport/knowledge-center/vpc-find-cause-of-failed-dns-queries/

Я попробовал команды, чтобы понять, какой PPS я нажимаю в данный момент, и следил за ситуацией, пока не нашел ошибку.

ERROR - 2021-09-20 12:14:31.547863 --> Severity: Warning --> mysqli::real_connect(): (HY000/2002): php_network_getaddresses: getaddrinfo failed: Temporary failure in name resolution

К моему удивлению, ниже приведен вывод команды, упомянутой в статье AWS:

tcpdump  -r <file_name.pcap> -nn dst port 53 | awk -F " " '{ print $1 }' | cut -d"." -f1 | uniq -c


  2 06:44:22
  6 06:44:24
  4 06:44:26
  2 06:44:28
  4 06:44:30
  7 06:44:34
  2 06:44:38
  7 06:44:39
  9 06:44:44
  6 06:44:46
  4 06:44:49
  6 06:44:50

Учитывая часовой пояс +05:30, ошибка в 12:14:31 IST должна иметь запись для DNS в 06:44:31 UTC.

Если мы рассмотрим средний размер пакета в 4 пакета на вызов, ссылаясь на ответ @matigo, я не получаю 22 вызова DNS в секунду. Так что дальше изучаем логи,

  4 06:39:06
 26 06:39:09
  4 06:39:10
  2 06:39:13
  6 06:39:16
 16 06:39:17

Некоторые записи превысили лимит в 22 DNS-вызова в секунду, и мы не столкнулись с ошибкой php_network_getaddresses.

Так что я не совсем понимаю, в чем тут проблема.

Кто-то также сказал, что это может быть связано с несанкционированным DHCP-сервером в локальной сети, не уверен, как это определить, или это возможно на EC2, когда единственным настроенным DNS-сервером является AWS Route53 Resolver.

На данный момент я не понимаю, связано ли это с лимитом PPS или с чем-то еще.

решение1

У меня была та же ошибка с экземпляром, который не достигал лимита. Через некоторое время я наткнулся на ветку поддержки AWS, где говорилось, что это может быть проблема с оборудованием.

На физическом хосте вашего экземпляра (i-3d124c6d) периодически возникают неполадки, некоторые из которых определенно могли привести к прерыванию обслуживания.

Не могли бы вы попробовать остановить и запустить этот экземпляр? Это приведет к его запуску на новом базовом оборудовании, и тогда мы сможем использовать вашу службу pingdom для проверки возникновения дальнейших проблем.

от:https://forums.aws.amazon.com/thread.jspa?threadID=171805.

Остановка и перезапуск экземпляра решили проблему.

Связанный контент