Je li „Time to first byte” (TTFB) označava brzinu poslužitelja?

Time to first byte (TTFB) je vrijednost u mikrosekundama izmjerena od trenutka slanja upita sve dok korisnik ne primi prvi bajt podataka koje šalje poslužitelj. Ovaj je parametar nažalost jedan od najpopularnijih načina mjerenja brzine učitavanja stranice. Zašto, nažalost?

Što trebao biti TTFB parametar?

Pretpostavka metoda testiranja brzine je da pomogne u pronalaženju i poboljšanju uskog grla koji produžuje vrijeme čekanja za uslugu. TTFB je samo sirova varijabla, zbroj mnogih drugih varijabli. Ona ne uzima u obzir mnoge važne parametre i ne dopušta točno odrediti koje se komponente pretvaraju u povećanje konačnog rezultata.

Što govore testeri o TTFB?

Neki testovi (npr. Google Page Speed Insight) pružaju informacije za “smanjenje vremena odgovora poslužitelja”. To je prilično pogrešna informacija, sugerirajući da problem leži na strani hosting uređaja. Nakon detaljnije analize, može se primijetiti da odgovor poslužitelja uključuje, između ostalog, izvršavanje PHP skripti i upita za bazu podataka. U slučaju loše optimizirane stranice, obrada skripte ili izvršavanje kompliciranog upita za bazu podataka može čak i povećati vrijeme čekanja za prvi bajt nekoliko puta – nakon svega, podaci se moraju obraditi na strani poslužitelja prije slanja.

Što znači hrvatski izraz “smanjiti vrijeme odgovora poslužitelja”?

Porezni obveznik za Google PageSpeedInsight na engleskoj verziji (https://developers.google.com/speed/docs/insights/Server) jasno opisuje: There are dozens of potential factors which may slow down the response of your server: slow application logic, slow database queries, slow routing, frameworks, libraries, resource CPU starvation, or memory starvation. You need to consider all of these factors to improve your server’s response time.

Jasno je da poljski izraz “smanjuje vrijeme odziva poslužitelja” u izvorniku, zapravo se uglavnom odnosi na parametre programiranja:

  • besplatna logika razvoja aplikacija (drugim riječima, loše dizajnirana/optimizirana aplikacija),
  • besplatni upiti u bazu podataka (npr. upiti bez indeksa ili vrlo komplicirani upiti baze podataka),
  • besplatno usmjeravanje (radi se o usmjeravanju u aplikaciji – drugim riječima, loše dizajniranoj aplikaciji),
  • okviri (tj. opći troškovi za izvršavanje koda s okvirima koji troše resurse na kojima je stranica izgrađena),
  • knjižnice (tj. opterećenje izvršavanja koda s knjižnicama koje troše resurse možda nepotrebno učitane),
  • Resursi CPU-a su premali (to je parametar koji se odnosi na poslužitelj – ali najčešće se daje izravno u hosting paketima),
  • premali resursi memorije (to je parametar koji se odnosi na poslužitelj – ali najčešće se daje izravno u hosting paketima).

Sve gore navedene parametre treba uzeti u obzir kako bi se poboljšalo “vrijeme odziva poslužitelja”.

Kako je TTFB do brzine preuzimanja stranice?

Također je vrijedno napomenuti da su brzina primanja prvog bajta i cjelokupnog sadržaja stranice dvije nepovezane vrijednosti. U testu koji je proveo Cloudflare (cijeli test možete pogledati ovdje: Https://blog.cloudflare.com/ttfb-time-to-first-byte-considered-meaningles/)) komprimirana web stranica se preuzima do 5 puta brže, unatoč činjenici da je slanje prvog bajta trajalo 8 puta duže nego kad je sadržaj bio nekomprimiran,

Dodatni parametri koji utječu na TTFB

Prilikom testiranja pomoću jedne od web stranica dostupnih na Internetu, dobivamo vrijednost TTFB izmjerenu između poslužitelja ovog mjesta testiranja i poslužitelja na kojem se nalazi stranica koja se testira. Većina poslužitelja koji nude TTFB testove nalaze se izvan Poljske ili čak Europe. S obzirom na činjenicu da je fizička lokacija i udaljenost vrlo važan čimbenik u ovoj vrsti testova (kašnjenja na međunarodnim i transkontinentalnim vezama), rezultat nam možda neće dati podatke koje bismo očekivali, jer ukoliko posjedujemo hrvatsku web stranice namijenjenu korisnicima iz Hrvatske zainteresirani smo za vrijeme uploadovanja u Hrvatskoj nego npr. u SAD-u.

Je li TTFB korisno ?

Imajući na umu ove i druge čimbenike koji ovdje nisu spomenuti, kao što je vrijeme odziva DNS poslužitelja, može se zaključiti da TTFB nije prikladan način za mjerenje performansi poslužitelja, već način mjerenja performansi i optimizacije web stranice. Sa gledišta korisnika, važnije je učitati cijelu stranicu, a ne primiti prvi bajt, tako da optimizacija vaše web stranice za TTFB ne uvijek ima pozitivan učinak na izvedbu cijele stranice. Vrijedi tražiti druge, pouzdanije metode testiranja internetskih aplikacija i fokusirati se uglavnom na optimizaciju koda (npr. Php) te na broj i “ozbiljnost” SQL upita.

Michał