Cum să testați viteza de încărcare a site-ului web în terminalul Linux


Timpul de răspuns al unui site web poate avea un impact mare asupra experienței utilizatorului, iar dacă ești un dezvoltator web sau pur și simplu un administrator de server care este în mod special responsabil pentru organizarea pieselor împreună, atunci trebuie să faci un punct pe care utilizatorii nu îl simt. frustrat în timp ce accesați site-ul dvs. – așa că există într-adevăr „nevoie de viteză”.

Acest ghid vă va arăta cum să testați timpul de răspuns al unui site din linia de comandă Linux. Aici, vom arăta cum să verificați timpul în secunde, durează:

  • pentru a efectua rezoluția numelui.
  • pentru conexiunea TCP la server.
  • pentru ca transferul fișierelor să înceapă.
  • pentru ca primul octet să fie transferat.
  • pentru operațiunea completă.

În plus, pentru site-urile cu HTTPS, vom vedea, de asemenea, cum să testăm timpul, în secunde, necesar: pentru ca o redirecționare și o conexiune/strângere de mână SSL la server să fie finalizată. Sună bine, bine, să începem.

cURL este un instrument puternic de linie de comandă pentru a transfera date de la sau către un server, utilizând protocoale precum FILE, FTP, FTPS, HTTP, HTTPS și multe altele. În cele mai multe cazuri, este folosit ca un descărcator de linie de comandă sau pentru verificarea antetelor HTTP. Cu toate acestea, aici, vom descrie una dintre funcționalitățile sale mai puțin cunoscute.

cURL are o opțiune utilă: -w pentru tipărirea informațiilor pe stdout după o operațiune finalizată. Are câteva variabile pe care le putem folosi pentru a testa diferiții timpi de răspuns enumerați mai sus, ale unui site web.

Vom folosi unele dintre variabilele legate de timp, care pot fi transmise într-un format dat ca șir literal sau în interiorul unui fișier.

Deci, deschideți terminalul și rulați comanda de mai jos:

$ curl -s -w 'Testing Website Response Time for :%{url_effective}\n\nLookup Time:\t\t%{time_namelookup}\nConnect Time:\t\t%{time_connect}\nPre-transfer Time:\t%{time_pretransfer}\nStart-transfer Time:\t%{time_starttransfer}\n\nTotal Time:\t\t%{time_total}\n' -o /dev/null http://www.google.com

Variabilele în formatul de mai sus sunt:

  • time_namelookup – timpul, în secunde, a durat de la început până când rezolvarea numelui a fost finalizată.
  • time_connect – timpul, în secunde, a durat de la început până când conectarea TCP la gazda (sau proxy) la distanță a fost finalizată.
  • time_pretransfer – timpul, în secunde, a durat de la început până când transferul fișierului era pe punctul de a începe.
  • time_starttransfer – timpul, în secunde, a durat de la început până când primul octet era pe punctul de a fi transferat.
  • time_total – timpul total, în secunde, în care a durat operațiunea completă (rezoluție în milisecunde).

Dacă formatul este prea lung, îl puteți scrie într-un fișier și utilizați sintaxa de mai jos pentru a-l citi:

$ curl -s -w "@format.txt" -o /dev/null http://www.google.com

În comanda de mai sus, steag:

  • -s – îi spune lui curl să lucreze în tăcere.
  • -w – tipăriți informațiile pe stdout.
  • -o – folosit pentru a redirecționa ieșirea (aici renunțăm la ieșire redirecționând-o către /dev/null).

Pentru site-urile HTTPS, puteți rula comanda de mai jos:

$ curl -s -w 'Testing Website Response Time for :%{url_effective}\n\nLookup Time:\t\t%{time_namelookup}\nConnect Time:\t\t%{time_connect}\nAppCon Time:\t\t%{time_appconnect}\nRedirect Time:\t\t%{time_redirect}\nPre-transfer Time:\t%{time_pretransfer}\nStart-transfer Time:\t%{time_starttransfer}\n\nTotal Time:\t\t%{time_total}\n' -o /dev/null https://www.google.com

În formatul de mai sus, noile variabile de timp sunt:

  • time_appconnect – timpul, în secunde, a durat de la început până când a fost finalizată conectarea/strângerea de mână SSL la gazda la distanță.
  • time_redirect – timpul, în secunde, necesar pentru toți pașii de redirecționare, inclusiv căutarea numelui, conectare, pretransfer și transfer înainte de începerea tranzacției finale; calculează timpul complet de execuție pentru redirecționări multiple.

Puncte importante de reținut.

  • Veți observa că valorile timpului de răspuns continuă să se schimbe (din cauza mai multor factori) pe măsură ce rulați diferite teste, prin urmare este recomandabil să colectați mai multe valori și să obțineți o viteză medie.
  • În al doilea rând, din rezultatele comenzilor de mai sus, puteți vedea că accesarea unui site web prin HTTP este mult mai rapidă decât prin HTTPS.

Pentru mai multe informații, consultați pagina de manual cURL:

$ man curl

Nu în ultimul rând, dacă rezultatele nu sunt plăcute, atunci aveți câteva ajustări de făcut pe server sau în cod. Puteți lua în considerare utilizarea următoarelor tutoriale care explică programe și sfaturi pentru a face site-urile web să se încarce mai rapid în Linux:

  1. Instalați Nginx cu Ngx_Pagespeed (Optimizare viteză) pe Debian și Ubuntu
  2. Accelerează performanța Nginx cu Ngx_Pagespeed pe CentOS 7
  3. Aflați cum să accelerați site-urile web folosind modulul Nginx și Gzip
  4. Cum să creșteți viteza de internet a serverului Linux cu TCP BBR

Asta e tot! Acum știți cum să testați timpul de răspuns al site-ului din linia de comandă. Puteți adresa întrebări prin intermediul formularului de feedback de mai jos.