Ă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.
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.
Lasă un răspuns