Puncte:0

TTFB crescut în echilibrul de încărcare HTTP

drapel pe

Avem propriul nostru rack în Amsterdam, Leaseweb.

Echilibrăm încărcarea HTTP (prin Cloudflare) cu 3 servere Windows 2019 IIS:

  • Server 1: server supermicro bare-metal. Rulează IIS, MySQL8 și Redis.
  • Server 2: VM pe serverul Dell. Rulează IIS.
  • Server 3: VM pe serverul Dell (copie exactă a serverului2). Rulează IIS.

Fișierele sunt servite local în toate cauzele (prin replicare)

Acum problema este că TTFB, ca măsurată local pe server este mai mare pe serverul 2 și pe serverul 3 (VM).

Rularea (mai multe) teste LOCAL cu Chrome:

Server 1:

  • În așteptare (TTFB): 269 ms
  • În așteptare (TTFB): 255 ms
  • În așteptare (TTFB): 253 ms

Server 2:

  • În așteptare (TTFB): 379 ms
  • În așteptare (TTFB): 376 ms
  • În așteptare (TTFB): 369 ms

Server 3:

  • În așteptare (TTFB): 374 ms
  • În așteptare (TTFB): 381 ms
  • În așteptare (TTFB): 378 ms

După cum puteți vedea, serverul unu are TTFB semnificativ mai mic. În ceea ce privește CPU, serverele 2 și 3 sunt de fapt mai rapide:

SCRIPT PHP BENCHMARK

Server1 Timp total: : 4.022 sec.

Server2 Timp total: : 2.866 sec.

Server3 Timp total: : 2.936 sec.

I/O este aproximativ aceeași pentru toate serverele. Toate au noi SSD-uri cu controlere hardware raid.

Am testat mutarea Redis pe una dintre VM-uri, astfel încât să îmi pot da seama dacă latența suplimentară vine de la Redis, dar nu face nicio diferență.

Presupunerea mea este că latența suplimentară în TTFB vine de la MySQL care rulează pe serverul 1? Rularea MySQL pe același server produce TTFB semnificativ mai mic, chiar dacă procesorul este mai lent.

Există o soluție pentru asta?

De fapt, întrebarea corectă este, cum pot identifica care este cauza latenței suplimentare?

drapel ua
TTFB pentru ce? O pagină web? Apache? PHP? MySQL 8 în toate cazurile? Redis?
drapel pe
IIS, pagină web. Avem o instanță de MySQL8 care rulează pe server1.
drapel ua
Câte nuclee CPU? Sugerați că existența MySQL pe mașină încetinește crearea unei pagini web de către IIS pe același server?
drapel pe
Nu. Exact opusul. Pe mașina pe care rulează MySQL, TTFB este mai scăzut.
Wilson Hauck avatar
drapel jp
Care este rezultatul SELECT @@VERSION; pe Server1 și Server2 și Server3?
drapel pe
Acesta este același pentru toate serverele: mysql> SELECTARE VERSIUNE(); +-----------+ | VERSIUNE() | +-----------+ | 8.0.27 | +-----------+ 1 rând în set (0,00 sec)

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.