De ce nu contează serverul la scorurile PageSpeed

Ăsta e un follow-up la articolul de ieri în care mi-am testat site-ul cu Gtmetrix pe diferite servere, de la o găzduire shared de 3 euro la un VPS pe Google Cloud de 500 euro. Scorurile au variat destul de puțin și am arătat astfel că serverul nu impactează foarte mult scorurile PageSpeed Insights.

Atenție, asta nu înseamnă că o găzduire shared de 3 euro e la fel de performantă ca un server virtual privat pe Google Cloud care costă 500 euro. Înseamnă doar că în contextul scorurilor PageSpeed serverul e aproape irelevant (atâta timp cât e ceva decent, nu o găzduire de 2 lei, evident).

Aș vrea să explic acum și de ce.

Site-ul testat e WordPress, iar WordPress e o aplicație PHP.

Dacă vorbim strict de web hosting, PHP e single-threaded, ceea ce înseamnă că un proces PHP poate rula doar pe un nucleu CPU și nu poate folosi mai multe nuclee. Putem rula mai multe procese PHP, câte unul pe fiecare nucleu, dar un singur proces în sine nu poate folosi niciodată mai mult de un nucleu.

WordPress este și ea o aplicație single-threaded, asta înseamnă că un request WordPress (încărcarea unei pagini, de exemplu, ca în cazul testului PageSpeed), oricât de complex ar fi, e gestionat de un singur PHP worker. Nu se implică niciodată mai mulți.

azi nu

Worker-ul ăla se leagă de 1 nucleu CPU și îl folosește ca să-și facă treaba, deci de reținut e treaba asta: 1 request, 1 PHP worker, 1 nucleu CPU.

Eu am testat servere cu 1, 2, 4, 8 și 24 nuclee CPU. În cadrul testului, Gtmetrix accesează site-ul și măsoară timpii de încărcare. Accesarea asta generează un request WordPress, deci un PHP worker se leagă de 1 nucleu CPU și începe să lucreze ca să servească pagina. Degeaba serverul are 24 de nuclee, că 23 stau degeaba și se uită la ăla singur care lucrează. Un fel de Dorel care dă la sapă și restul ingineri.

Ăsta e motivul pentru care scorurile de performanță PageSpeed nu mi-au variat foarte mult, oricât de multe core-uri CPU avea serverul.


Comments

7 răspunsuri

  1. Avatar Gabi Udrescu
    Gabi Udrescu

    Andrei, aici cred că faci o greșeală.

    tu iei în considerare faptul că ai un request pe site. însă în realitate, când vine vorba de perioade de trafic mare, serverul și numărul de procesoare contează (foarte) mult.

    așa că da, dacă vorbim de site-uri cu trafic mic, atunci în condiții de testare, câte procesoare are un server nu cred că face diferența.

    dar dacă vorbim de un site cu trafic mai mare, în condiții reale, atunci numărul de procesoare poate face diferența între 300ms TTFB și 3sec TTFB.

    fă o testare cu Apache Benchmark în ceea ce privește concurența cu 1, 10 și 100 de conexiuni simultane pe cele 2 servere menționate de tine, shared și dedicat cu 500€ pe lună.

    1. Avatar Andrei Chira
      Andrei Chira

      Articolul nu se referă la performanța reală, ci strict la testele de tip PageSpeed. Am vrut să testez cum variază rezultatele dacă serverul are din ce în ce mai multe resurse (CPU în principal) și să arăt că nu variază prea mult. Poate nu am fost prea explicit, dar e evident că serverele cu mai multe resurse sunt mai performante. Doar că nu te ajută la testele astea. Te ajută la performanță reală, în special la susținut mai mult trafic.

    2. Avatar Gabi Udrescu
      Gabi Udrescu

      Da, dacă faci testarea în izolare, ai dreptate, nu contează câte procesoare ai. Dar scorul PageSpeed e relevant pentru că îl folosește Google. Care intră random la tine pe site.

      Și de fapt, nici nu contează așa mult Google, cât contează experiența utilizatorilor tăi. Deci, concluzia că serverul nu contează la PageSpeed este valabilă, după părerea mea, doar dacă vorbim de o testare în izolare, nu când vorbim de performanța reală, pentru end-user.

    3. Salut! Exact, resursele requestelor conteaza pe un server configurat ca atare. Prin urmare conteaza efectul real!! Deci un dedicat, oricand!

      Andrei, sti pe ce device-uri se fac testele de page speed? Te rog sa raspunzi sincer!!

    4. Avatar Andrei Chira
      Andrei Chira

      Nu știu pe ce device-uri se fac. Nici nu prea înțeleg întrebarea, sincer.

  2. Avatar Cătălin

    Ca și completare la cele spuse de tine mai sus, referitor la procesore.. cu cat frecventa procesorului este mai mare, cu atât mai repede se face procesarea, deci cu atât mai repede se încarcă și site-ul.

    1. Avatar Andrei Chira
      Andrei Chira

      Așa-i, contează foarte mult single-core performance.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *