Sådan testes webstedets indlæsningshastighed i Linux Terminal


En websides responstid kan have stor indflydelse på brugeroplevelsen, og hvis du er en webudvikler eller simpelthen en serveradministrator, der er særlig ansvarlig for at organisere brikkerne sammen, skal du gøre det til et punkt, som brugerne ikke føler frustreret, mens du får adgang til dit websted - så der er virkelig ”behov for hastighed”.

Denne guide viser dig, hvordan du tester en websides responstid fra Linux-kommandolinjen. Her viser vi, hvordan man kontrollerer tiden i sekunder, det tager:

  • for at udføre navneløsning.
  • til TCP-forbindelse til serveren.
  • for at filoverførslen skal begynde.
  • for den første byte, der skal overføres.
  • for den komplette operation.

Derudover vil vi for HTTPS-aktiverede websteder også se, hvordan vi tester tiden i sekunder, det tager: for en omdirigering, og SSL-forbindelse/håndtryk til serveren skal gennemføres. Det lyder godt, okay, lad os komme i gang.

cURL er et kraftfuldt kommandolinjeværktøj til at overføre data fra eller til en server ved hjælp af protokoller som FILE, FTP, FTPS, HTTP, HTTPS og mange andre. I de fleste tilfælde bruges det som en kommandolinjedownloader eller til kontrol af HTTP-headere. Her vil vi dog beskrive en af dens mindre kendte funktionaliteter.

cURL har en nyttig mulighed: -w til udskrivning af information på stdout efter en afsluttet operation. Det har nogle variabler, som vi kan bruge til at teste de forskellige svartider, der er anført ovenfor, på et websted.

Vi bruger nogle af de tidsrelaterede variabler, som kan sendes i et givet format som en bogstavelig streng eller inde i en fil.

Så åbn din terminal og kør kommandoen nedenfor:

$ 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

Variablerne i ovenstående format er:

  • time_namelookup - tid, i sekunder, det tog fra starten, indtil navnet på løsning var afsluttet.
  • time_connect - tid, i sekunder, det tog fra starten, indtil TCP-forbindelsen til den eksterne vært (eller proxy) blev gennemført.
  • time_pretransfer - tid, i sekunder, det tog fra starten, indtil filoverførslen var lige ved at begynde.
  • time_starttransfer - tid, i sekunder, det tog fra starten, indtil den første byte lige var ved at blive overført.
  • time_total - samlet tid, i sekunder, hvor den fulde operation varede (opløsning i millisekund).

Hvis formatet er for langt, kan du skrive det i en fil og bruge syntaksen nedenfor til at læse det:

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

I ovenstående kommando flag:

  • -s - beder krøller om at arbejde lydløst.
  • -w - udskriv oplysningerne på stdout.
  • -o - bruges til at omdirigere output (her kasserer vi output ved at omdirigere det til/dev/null).

For HTTPS-websteder kan du køre kommandoen nedenfor:

$ 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

I ovenstående format er de nye tidsvariabler:

  • time_appconnect - tid, i sekunder, det tog fra starten, indtil SSL-forbindelsen/håndtrykket til den eksterne vært blev gennemført.
  • time_redirect - tid, i sekunder, det tog alle omdirigeringstrin inklusive navneopslag, tilslutning, overførsel og overførsel inden den sidste transaktion blev startet den beregner den fulde udførelsestid for flere omdirigeringer.

Vigtige punkter, der skal bemærkes.

  • Du vil bemærke, at responstidens værdier bliver ved med at ændre sig (på grund af flere faktorer), når du kører forskellige tests, derfor anbefales det at samle flere værdier og få en gennemsnitshastighed.
  • For det andet kan du fra resultaterne af ovenstående kommandoer se, at adgang til et websted via HTTP er meget hurtigere end via HTTPS.

For mere information se cURL-mandsiden:

$ man curl

Sidst men ikke mindst, hvis dine resultater ikke er behagelige, så har du nogle justeringer, du skal foretage på din server eller inden for koden. Du kan overveje at bruge følgende vejledninger, der forklarer programmer og tip til at få websted (er) til at indlæse hurtigere i Linux:

  1. Installer Nginx med Ngx_Pagespeed (Speed Optimization) på Debian og Ubuntu
  2. Fremskynd Nginx-ydeevne med Ngx_Pagespeed på CentOS 7
  3. Lær hvordan du fremskynder websteder ved hjælp af Nginx og Gzip-modulet
  4. Sådan forbedres Linux Server Internet Speed med TCP BBR

Det er alt! Nu ved du, hvordan du tester websides responstid fra kommandolinjen. Du kan stille spørgsmål via feedbackformularen nedenfor.