Puncte:0

Eroare temporară în Rezoluția numelui PHP-Ubuntu

drapel in

Continuu să primesc această eroare foarte frecvent:

Severitate: Avertisment --> mysqli::real_connect(): php_network_getaddresses: getaddrinfo failed: Eșec temporar în rezolvarea numelui

Această problemă se rezolvă numai după repornirea serverului. Având în vedere că acest lucru se întâmplă pe un server live care are milioane de solicitări zilnic, repornirea nu este cea mai bună opțiune.

[EDITAT] Folosesc Ubuntu 18.04 și mă conectez la un cluster Aurora pe AWS, iar codul backend se află pe EC2

drapel in
Există o cantitate insuficientă de informații aici pentru a oferi sugestii utile dincolo de sfaturile generice care pot fi găsite pe prima pagină a Google. Ați putea [editați] întrebarea dvs. pentru a include: (1) versiunea de Ubuntu pe care o utilizați (2) numele de gazdă pe care îl utilizați pentru a vă conecta la MySQL
cyberrspiritt avatar
drapel in
actualizat @matigo
Puncte:2
drapel in

Luând în considerare următoarele detalii:

  1. milioane de cereri zilnic
  2. Aurora Cluster pe AWS

Poate doriți să aruncați o privire asupra sistemului dvs. pentru a vă asigura că nu depășiți valoarea Cotă DNS pentru contul dvs.

Unul dintre elementele remarcabile din documentația cotei este acesta:

Fiecare instanță Amazon EC2 limitează numărul de pachete care pot fi trimise către serverul DNS furnizat de Amazon la maximum 1024 de pachete pe secundă per interfață de rețea. Această cotă nu poate fi mărită. Numărul de interogări DNS pe secundă acceptate de serverul DNS furnizat de Amazon variază în funcție de tipul de interogare, de dimensiunea răspunsului și de protocolul utilizat. Pentru mai multe informații și recomandări pentru o arhitectură DNS scalabilă, consultați cartea albă Hybrid Cloud DNS Solutions pentru Amazon VPC.

Dacă atingeți cota, Amazon Route 53 Resolver respinge traficul [...]

Notă: Sublinierea mea.

Bitul „maximum de 1024 de pachete pe secundă” este important deoarece real numărul de pachete per interogare poate varia și, de obicei, există mai multe pachete per interogare DNS.

Dacă serverele dvs. primesc milioane de solicitări pe zi, atunci există o mare posibilitate ca serverele dvs. să atingă maximum acel pachet:

  • 1.000.000 de solicitări / 86.400 de secunde = 11,574 de solicitări pe secundă
  • 11.574 * 4 pachete¹ = 46 de pachete pe secundă
  • 1024 / 46 = 22,26 de apeluri DNS pe secundă

Nu pot spune că aceasta este cu siguranță problema, dar acesta este un loc bun în care să începeți să căutați, mai ales dacă serverele dvs. web au perioade regulate de avânt în care traficul nu funcționează la o medie plăcută, netedă.


¹ După ce am fost muşcat de această problemă în trecut, am măsurat că multe solicitări DNS necesită în medie 4 pachete per apel

cyberrspiritt avatar
drapel in
Vă mulțumim pentru răspunsul dumneavoastră. Sunt conștient de acest lucru, dacă ating numărul maxim de solicitări pe secundă, cum o rezolv? De obicei, repornirea serverului o rezolvă. Care sunt soluțiile pentru a evita această limită?
drapel in
Nu am găsit o modalitate bună, prietenoasă cu HA, de a rezolva problema.Am făcut lucruri precum DNS hibrid și altele, dar, dacă clusterul reușește, un DNS local poate duce la eșecuri de conexiune timp de câteva secunde/minute până când TTL-ul local expiră... ceea ce nu este grozav. În general, a trebuit să intru în codul aplicației și să caut interogări SQL care sunt duplicate inutil sau care sunt inutil miope.
cyberrspiritt avatar
drapel in
Ar folosi serviciile nscd sau dnsmasq pentru a nu atinge limita? deoarece ar stoca în cache interogările NS pentru ceva timp?
drapel in
Da, atâta timp cât clusterul nu trebuie să treacă niciodată la o altă instanță. În caz contrar, încă aștepți TTL-ul local
cyberrspiritt avatar
drapel in
Am încercat să depanez acest lucru folosind un articol AWS: https://aws.amazon.com/premiumsupport/knowledge-center/vpc-find-cause-of-failed-dns-queries/ Cel mai mare număr de pachete pe secundă pe care l-am putut găsi a fost 26. Dar când m-am confruntat din nou cu această eroare php astăzi, numărul de pachete a fost mai mic de 15 în acel interval de timp.
drapel pn
M-am confruntat cu probleme similare și am scris pe blog despre soluția mea aici: https://manuel.kiessling.net/2022/01/27/getting-rid-of-temporary-failures-in-name-resolution-on-aws -ec2/

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.