php_network_getaddresses: getaddrinfo fehlgeschlagen: Vorübergehender Fehler bei der Namensauflösung

php_network_getaddresses: getaddrinfo fehlgeschlagen: Vorübergehender Fehler bei der Namensauflösung

Ich erhalte sehr häufig diesen Fehler:

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

Dieses Problem wird erst nach einem Neustart des Servers behoben. Da dies bei einem Live-Server mit täglich Millionen von Anfragen passiert, ist ein Neustart nicht die beste Option.

[BEARBEITET]

Ich verwende Ubuntu 18.04 und verbinde mich mit einem Aurora-Cluster auf AWS. Der Backend-Code befindet sich auf EC2.

@matigo auf Askubuntu scheint zu glauben, dass ich möglicherweise am Limit bin:

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

Also habe ich ein bisschen debuggt, um herauszufinden, ob ich tatsächlich das 1024-PPS-Limit erreiche. Glücklicherweise gab es einen AWS-Artikel, der mir dabei zu helfen scheint, das zu verstehen.

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

Ich habe die Befehle ausprobiert, um den PPS zu verstehen, den ich gerade erreiche, und habe ihn überwacht, bis ich den Fehler gefunden habe.

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

Zu meiner Überraschung ist das Folgende die Ausgabe des im AWS-Artikel erwähnten Befehls

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

Bei einer Zeitzone von +05:30 sollte ein Fehler um 12:14:31 IST einen Eintrag für DNS um 06:44:31 UTC zur Folge haben.

Wenn wir die durchschnittliche Paketgröße auf 4 Pakete pro Anruf setzen, komme ich laut @matigos Antwort nicht auf 22 DNS-Anrufe pro Sekunde. Wenn ich mir also die Protokolle genauer ansehe,

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

Einige Einträge haben das Limit von 22 DNS-Aufrufen pro Sekunde überschritten und der php_network_getaddresses-Fehler ist uns nicht begegnet.

Ich bin also nicht sicher, wo hier das Problem liegt.

Jemand sagte auch, dass dies an einem nicht autorisierten DHCP-Server im LAN liegen könnte. Ich bin nicht sicher, wie man das erkennt, oder wäre es auf einem EC2 möglich, wenn der einzige konfigurierte DNS der AWS Route53-Resolver ist.

An diesem Punkt bin ich mir nicht sicher, ob es sich hier überhaupt um das Problem der PPS-Begrenzung handelt oder ob es etwas anderes ist.

Antwort1

Ich hatte den gleichen Fehler mit einer Instanz, die das Limit nicht erreichte. Nach einiger Zeit stieß ich auf einen AWS-Support-Thread, der darauf hinwies, dass es sich um ein Hardwareproblem handeln könnte.

Der physische zugrunde liegende Host Ihrer Instanz (i-3d124c6d) scheint zeitweise Probleme gehabt zu haben, von denen einige definitiv zu einer Dienstunterbrechung geführt hätten.

Könnten Sie versuchen, diese Instanz zu stoppen und zu starten? Dadurch wird sie auf neuer zugrunde liegender Hardware gestartet und wir können dann Ihren Pingdom-Dienst nutzen, um zu überprüfen, ob weitere Probleme auftreten.

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

Das Anhalten und Neustarten der Instanz hat das Problem für mich behoben.

verwandte Informationen