Я продолжаю очень часто получать эту ошибку:
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.
Остановка и перезапуск экземпляра решили проблему.