Puncte:0

Wordpress încetinește în spatele GCP HTTP Load Balancer

drapel in

Găzduiesc o instanță Wordpress pe GCP Compute Engine (folosind imaginea Marketplace). Funcționează excelent când acces direct IP-ul instanței, iar latența este de aproximativ 20 ms.

Cu toate acestea, pentru a securiza site-ul, folosesc un echilibrator de încărcare HTTP GCP în fața instanței. Mi-am îndreptat domeniul către echilibrantul de încărcare.

Când accesez Wordpress prin intermediul echilibrului de încărcare (fie HTTP, fie HTTPS), primesc câteva interogări care au timpi de latență foarte buni (aproximativ 17 ms), dar apoi la fiecare 4 sau 5 interogări, există o solicitare care durează aproximativ 5 secunde. Când accesez direct instanța, acest lucru nu se întâmplă.

Am activat jurnalul de echilibrare a încărcăturii și am observat că instanța răspunde lent la fiecare câteva solicitări. Am încercat să setez parametrul KeepAlive Apache2 al instanței la 300, dar nu are nicio diferență.

Care ar putea fi cauza principală a acestui lucru? (Nu sunt sigur dacă este Wordpress, sau instanța sau echilibrul de încărcare).

Mulțumiri

John Hanley avatar
drapel cn
1) Cu excepția cazului în care stați lângă VM, o latență de 20 ms nu ar acoperi latența Internetului. 2) WordPress execută o cantitate suficientă de PHP doar pentru a livra o pagină simplă. Nu există suficiente informații în întrebarea dvs. pentru a începe chiar să vă rezolvați problema. Când o solicitare durează mult mai mult decât alte solicitări, mă uit mai întâi la baza de date și la resursele necesare. În continuare, aș revizui pluginurile pentru a mă asigura că unul dintre ele nu este vinovatul.
tocas619 avatar
drapel in
@JohnHanley Aceasta este bucla pentru toate cele trei opțiuni. Curl împotriva domeniului meu: `5.154792 0,080269 0,085232 4,586898 4,585617` Curl pe IP-ul meu de echilibrare a sarcinii `4.586002 4,581853 0,084445 0,083991 4,581840` Curl împotriva mea VM IP `0,738966 0,114106 0,116997 0,114877 0,122570` În toate cele trei cazuri, este același VM și este foarte consistent atunci când îl rulez pentru mai multe iterații (nu am avut spațiu pentru a lipi totul aici).
John Hanley avatar
drapel cn
Nu am idee ce raportează acele cifre. Editați-vă întrebarea și puneți acolo datele cu un antet. Includeți comanda și unde rulați comanda.
tocas619 avatar
drapel in
@JohnHanley Vă mulțumim pentru ajutor. Am rezolvat-o acum prin înlocuirea echilibrului de încărcare. Vezi răspunsul meu mai jos.
Puncte:0
drapel us

Pentru a verifica și optimiza latența, luați în considerare scenariul menționat mai jos:

  1. Pentru a optimiza latența pentru Load Balancer, vă sugerez să activați opțiunea Cloud CDN. Cloud CDN reduce latența prin difuzarea activelor direct la marginea rețelei Google. În Configurare backend secțiunea Load Balancer, puteți selecta Activați Cloud CDN Caseta de bifat. Pentru instrucțiuni detaliate, consultați Ghiduri de utilizare Cloud CDN.

  2. Pentru a reduce latența în interiorul aplicațiilor dvs., examinați orice apeluri de procedură la distanță (RPC) care comunică între VM. Această latență apare de obicei atunci când aplicațiile comunică între niveluri sau servicii. Instrumente precum Cloud Trace vă poate ajuta să reduceți latența cauzată de solicitările de servire a aplicațiilor. Pentru mai multe informații, puteți verifica Aici.

Dacă problema persistă, trimiteți următoarele detalii pentru a obține mai multă claritate asupra problemei dvs.:

  1. Configurarea echilibrului de încărcare HTTP, adică verificări de sănătate, backend-uri, front sfârșituri, reguli de firewall etc.

  2. Sprijină jurnalele de echilibrare a încărcăturii - backend și latență frontend, MTR de la client la LB și LB la backend.

  3. Pentru a verifica cererea și timpul de răspuns atât la IP-ul serverului, cât și la IP-ul LB, rulați următoarea comandă:

            curl -w „@curl-format.txt” -o /dev/null -s http://<LB IP/IP server>
    

Notă: pentru a crea un fișier âcurl-format.txtâ, parcurgeți sincronizare-detalii-cu-curl document.

tocas619 avatar
drapel in
Am activat CDN-ul, dar nu a ajutat. Am un singur VM, deci nu există RPC-uri. Când am rulat comanda curl, am încă latențe lungi pentru timpul total pentru multe solicitări prin LB.Iată o linie de rezultate din comanda curl (care rulează prin IP-ul LB): `time_namelookup: 0.000485time_connect: 0.016699time_appconnect: 0.000000time_pretransfer: 0.016785time_redirect: 0.000000time_redirect: 0.000000time_redirect: 0.000000time_redirect: 0.000000time_time: 0.000485time_connect: 0.000000time_time_start. Rularea direct prin instanță nu are probleme.
Puncte:0
drapel in

Am petrecut multe zile încercând să remediez acest lucru, iar astăzi am decis să merg pe vechea rută și să fac un nou echilibrator de încărcare. Noul echilibrator de încărcare funcționează ca un farmec.A fost exact aceeași configurație, așa că nu sunt sigur ce s-a întâmplat, dar există asta :)

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.