Vyhledávání na webu

Jak otestovat rychlost načítání webových stránek v terminálu Linux


Doba odezvy webových stránek může mít velký dopad na uživatelskou zkušenost, a pokud jste webový vývojář nebo jednoduše správce serveru, který je zvláště zodpovědný za uspořádání jednotlivých částí dohromady, pak musíte dbát na to, aby to uživatelé necítili. frustrovaní při přístupu na vaše stránky – takže je skutečně „potřeba rychlosti“.

Přečtěte si také: httpstat – nástroj Curl Statistics ke kontrole výkonu webových stránek

Tato příručka vám ukáže, jak otestovat dobu odezvy webu z příkazového řádku systému Linux. Zde si ukážeme, jak zkontrolovat čas v sekundách, trvá to:

  • k provedení překladu jmen.
  • pro TCP spojení se serverem.
  • pro zahájení přenosu souboru.
  • pro první bajt, který se má přenést.
  • pro kompletní operaci.

U webů s povoleným protokolem HTTPS navíc uvidíme, jak otestovat čas v sekundách, který trvá: dokončení přesměrování a připojení SSL/handshake k serveru. Zní to dobře, dobře, začněme.

cURL je výkonný nástroj příkazového řádku pro přenos dat ze serveru nebo na server pomocí protokolů jako FILE, FTP, FTPS, HTTP, HTTPS a mnoha dalších. Ve většině případů se používá jako downloader příkazového řádku nebo pro kontrolu HTTP hlaviček. Zde si však popíšeme jednu z jeho méně známých funkcí.

cURL má užitečnou volbu: -w pro tisk informací na stdout po dokončení operace. Má několik proměnných, které můžeme použít k testování různých výše uvedených časů odezvy webových stránek.

Použijeme některé z proměnných souvisejících s časem, které lze předávat v daném formátu jako doslovný řetězec nebo uvnitř souboru.

Otevřete tedy terminál a spusťte níže uvedený příkaz:

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

Proměnné ve výše uvedeném formátu jsou:

  • time_namelookup – čas v sekundách, který trval od začátku do dokončení překladu názvu.
  • time_connect – čas v sekundách, který trval od začátku do dokončení připojení TCP ke vzdálenému hostiteli (nebo proxy).
  • time_pretransfer – čas v sekundách, který trval od začátku do okamžiku, kdy se blížil začátek přenosu souboru.
  • time_starttransfer – čas v sekundách, který trval od začátku, dokud se první bajt právě nechystal přenést.
  • time_total – celkový čas v sekundách, po který trvala celá operace (rozlišení v milisekundách).

Pokud je formát příliš dlouhý, můžete jej zapsat do souboru a pomocí níže uvedené syntaxe jej přečíst:

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

Ve výše uvedeném příkazu příznak:

  • -s – říká curl, aby pracoval tiše.
  • -w – tisk informací na stdout.
  • -o – používá se k přesměrování výstupu (zde výstup zahodíme přesměrováním na /dev/null).

U webů HTTPS můžete spustit následující příkaz:

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

Ve výše uvedeném formátu jsou nové časové proměnné:

  • time_appconnect – čas v sekundách, který trval od začátku do dokončení připojení/handshake SSL ke vzdálenému hostiteli.
  • time_redirect – čas v sekundách, který zabraly všechny kroky přesměrování, včetně vyhledání jména, připojení, předběžného přenosu a přenosu, než byla zahájena konečná transakce; počítá plnou dobu provádění pro více přesměrování.

Důležité body, které je třeba poznamenat.

  • Všimnete si, že hodnoty doby odezvy se při provádění různých testů neustále mění (v důsledku několika faktorů), proto je vhodné shromáždit několik hodnot a získat průměrnou rychlost.
  • Za druhé, z výsledků výše uvedených příkazů můžete vidět, že přístup na web přes HTTP je mnohem rychlejší než přes HTTPS.

Další informace naleznete na manuálové stránce cURL:

man curl

V neposlední řadě, pokud vaše výsledky nejsou příjemné, pak musíte provést nějaké úpravy na vašem serveru nebo v kódu. Můžete zvážit použití následujících výukových programů, které vysvětlují programy a tipy pro rychlejší načítání webových stránek v Linuxu:

  1. Nainstalujte Nginx s Ngx_Pagespeed (optimalizace rychlosti) na Debian a Ubuntu
  2. Zrychlete výkon Nginx pomocí Ngx_Pagespeed na CentOS 7
  3. Přečtěte si, jak zrychlit webové stránky pomocí modulu Nginx a Gzip
  4. Jak zvýšit rychlost internetu serveru Linux pomocí TCP BBR

To je vše! Nyní víte, jak otestovat dobu odezvy webu z příkazového řádku. Dotazy můžete klást prostřednictvím formuláře pro zpětnou vazbu níže.