Moodul 6 · 6.1
Mis muudab saidi aeglaseks ja kuidas seda mõõta?
Moodul 6: Kiirus · Lugemisaeg: 9 minutit
Õpieesmärk: Pärast seda õppetundi oskad mõõta, kus aeg kaob, ja eristada serveripoolset aeglust brauseripoolsest aeglusest.
Põhimõisted: TTFB, Core Web Vitals (LCP, INP, CLS), laboriandmed, välitöö andmed, PageSpeed Insights, võrgu vahekaart, tihendamine, välised skriptid, majutuspaketi piirangud, 503
Kõigepealt mõõda, siis alles näpuga järge aja
"Sait on aeglane" võib tähendada kümmet erinevat põhjust. Kes võtab ilma mõõtmata korraga kasutusele vahemäluplugina, pildioptimeerimise plugina ja suurema paketi, ei tea pärast, mis aitas, ja tal on nüüd kolm asja, mida jälgida. Alusta seetõttu alati kolmest küsimusest (samad, mis su majutuspakkuja juhendis):
- Kas kõik on aeglane või ainult haldus? Aeglane haldus kiire avaliku poolega viitab pluginatele, mis teevad halduses palju, või botidele, mis ründavad sisselogimislehte.
- Kas alati või teatud hetkedel? Ainult kiiretel hetkedel või kui mõni ajastatud ülesanne töötab: siis jõuab su pakett oma piirideni.
- Kas kõigil või ainult sinul? Proovi oma telefonis 4G või 5G kaudu või palu kellelgi teisel proovida. Kui aeglane on ainult sinu puhul, on asi su internetiühenduses või VPN-is.
Kaks poolt: server ja brauser
Aeg, mida külastaja ootab, koosneb kahest osast (õppetund 1.2):
- Server koostab HTML-i: veebiserver, PHP, pluginad, andmebaas. Seda näed kui TTFB (time to first byte), aega kuni vastuse esimese baidini. web.dev ütleb rusikareeglina, et enamik saite peaks püüdlema TTFB poole, mis on 0,8 sekundit või vähem.
- Brauser loeb seda HTML-i ja toob seejärel kõik, mis seal sees on: laaditabelid, skriptid, fondid, pildid, video, mõõtekoodid, vestlusvidinad. Alles kui piisavalt sellest on kohale jõudnud, näeb külastaja midagi.
Kõrge TTFB lahendad serveripoolselt: vahemälu (õppetund 6.2), vähem või kergemaid pluginaid, uuem PHP versioon, korrastatud andmebaas (õppetund 6.3) või rohkem arvutusvõimsust. Madal TTFB, kuid ikkagi aeglane leht, viitab brauseripoolsele probleemile: liiga suured pildid, liiga palju skripte, välised komponendid.
Core Web Vitals
Google mõõdab külastajate kogemust kolme näitajaga, Core Web Vitals:
| Mõõtmine | Mida see mõõdab | Hea on |
|---|---|---|
| LCP (Largest Contentful Paint) | Kui kiiresti suurim sisuelement (tihti suur pilt või pealkiri) on nähtav | 2,5 sekundit või vähem |
| INP (Interaction to Next Paint) | Kui kiiresti leht reageerib, kui klõpsad, puudutad või tipid | 200 millisekundit või vähem |
| CLS (Cumulative Layout Shift) | Kui palju leht laadimise ajal nihkub | 0,1 või vähem |
INP asendas märtsis 2024 vanema mõõtmise FID. Google kasutab neid näitajaid muuhulgas otsingutulemuste järjestamisel, kuid peamine põhjus neid parandada on lihtne: külastajad lahkuvad aeglase või nihkuva lehe juurest.
Laboriandmed ja välitöö andmed
On kahte liiki mõõtmisi, ja need annavad erinevaid numbreid:
- Laboriandmed: test ühel hetkel, ühest kohast, simuleeritud telefoni ja ühendusega. Kasulik võrdlemiseks (enne ja pärast muudatust), kuid see ei ole päris külastaja.
- Välitöö andmed: mõõtmised päris külastajatelt Chrome'iga, viimase 28 päeva jooksul. See on see, mida külastajad tegelikult kogevad. Väikestel saitidel pole sageli piisavalt külastajaid välitöö andmete jaoks.
PageSpeed Insights (pagespeed.web.dev) näitab mõlemat: ülal välitöö andmed (kui need on olemas), all laboritest koos skoori ja konkreetsete nõuannetega. Ära vaata ainult skoori 0 kuni 100. Vaata komponente: kas LCP on halb, sest server on aeglane (TTFB) või sest suur pilt on 3 MB?
Testi alati paar korda (numbrid kõiguvad) ja testi ka tavalist lehte, mitte ainult avalehte.
Ise brauseriga vaatamine
Su brauseri arendustööriistad (F12) näitavad, mis tegelikult toimub:
- Võrgu vahekaart: värskenda lehte vahemälu väljalülitatuna (linnuke "Cache uitschakelen" ehk "Luba vahemälu keelamine"). Näed iga laaditavat faili, selle suurust ja kui kaua see aega võttis. Sorteeri suuruse järgi: suurimad failid on tihti pildid. Sorteeri domeeni järgi: kui palju tuleb teistelt osapooltelt (fondid, mõõtekoodid, videod)?
- Esimene päring (HTML ise): klõpsa sellel, vahekaart Timing. "Waiting for server response" on TTFB.
- Selle esimese päringu päised: kas on tihendamine (
content-encoding: brvõigzip) ja kas leht tuli vahemälust (õppetund 6.2)?
Tavalised süüdlased
Praktikas on WordPressi aeglus enamasti ühe nende seast:
- Puudub lehecache: iga leht luuakse igal külastusel uuesti (õppetund 6.2).
- Liiga palju või liiga raskeid pluginaid, eriti pluginad, mis iga päringu puhul kutsuvad väliseid teenuseid või teevad raskeid andmebaasipäringuid (õppetund 5.3).
- Suured pildid: 5 MB foto telefonist avalehel (õppetund 4.4 ja 6.3).
- Raske teema või leheehitaja, mis laadib igal lehel palju skripte ja laaditabeleid (õppetund 5.1).
- Välised komponendid: fondid, videod, vestlusvidinad, mõõtekoodid, sotsiaalmeedia nupud teistelt osapooltelt. Igaüks neist on ühendus teise serverisse, mis võib olla aeglane.
- Vana PHP versioon (õppetund 8.4).
- Korrastamata andmebaas: tuhanded versioonid, rämpspost, pluginate logitabelid (õppetund 6.3).
- Botid: roomikud, tehisintellekti roomikud ja sisselogimiskatsed hõivavad su paketi (õppetund 7.3).
- Pakett jõuab oma piirideni: liiga vähe arvutusvõimsust (CPU), protsesse või mälu liikluse jaoks.
Su paketi piirid
Jagatud majutuses saab iga pakett serverist kindla osa: arvutusvõimsust, mälu, kettakiirust ja teatud arvu samaaegseid protsesse. Kui su sait kasutab rohkem, siis seda piiratakse, või külastajad saavad veateate 503 (Service Unavailable, mõne majutuspakkuja juures "Resource Limit Is Reached"). DirectAdminis koos CloudLinuxiga näed seda Resource Usage all (koos "faults", kui su saiti piirati) ja X-Ray näitab lehe kaupa, milline plugin või andmebaasipäring aega võtab. Teistel majutuspakkujatel on sarnased ülevaated, mõnikord ainult taotluse korral.
Suurem pakett aitab, kui su sait vajab tõesti rohkem (näiteks tihe veebipood). See ei lahenda halvasti seadistatud saiti: probleem tuleb siis hiljem tagasi. Otsi kõigepealt põhjus.
Kokkuvõte
- Mõõda kõigepealt: kõik või ainult haldus, alati või mõnikord, kõik või ainult sina.
- TTFB on serveripool (eesmärk 0,8 sekundit või vähem); ülejäänu on see, mida brauser laadib.
- Core Web Vitals: LCP (2,5 s), INP (200 ms) ja CLS (0,1); INP asendas FID 2024. aastal.
- PageSpeed Insights näitab välitöö andmeid ja laboriandmeid; võrgu vahekaart näitab, mis tegelikult laadib.
- Enamik aeglusest tuleb puuduva vahemälu, raskete pluginate, suurte piltide ja väliste komponentide tõttu; suurem pakett on alles viimane samm.
Test
Ülesanne
Ülesanne A6.1: Mõõda oma TTFB-d ja tihendamist. Sisesta oma saidi aadress ja soovi korral üks tavaline leht (näiteks su kontaktileht). Programm pärib iga lehte kolm korda ilma küpsisteta ja annab keskmise TTFB, HTML-i suuruse ja kas server saadab HTML-i tihendatult (content-encoding gzip või br). Võrdle tulemust PageSpeed Insightsi testiga ja pane kirja, mis sulle silma jääb.
Lisalugemist
Need artiklid kirjeldavad samme WebOké paneelides; teistes paneelides toimivad need sarnaselt.
- DirectAdmin juhend 18.3: Minu veebileht on aeglane
- DirectAdmin juhend 17.3: Resource Usage: CPU, mälu ja protsessid
- DirectAdmin juhend 17.4: X-Ray: aeglaste lehtede tuvastamine
- DirectAdmin juhend 17.5: 503 ehk "Resource Limit Is Reached": mida teha?
- Minu veebisait on aeglane või kasutab liiga palju protsessoriaega: nii teed selle kiiremaks
- Core Web Vitals (web.dev, inglise keeles): https://web.dev/articles/vitals
- PageSpeed Insights: https://pagespeed.web.dev/
