Wyszukiwanie w witrynie

Jak przetestować prędkość ładowania witryny w terminalu Linux


Czas reakcji witryny internetowej może mieć ogromny wpływ na wygodę użytkownika, a jeśli jesteś twórcą stron internetowych lub po prostu administratorem serwera, który jest szczególnie odpowiedzialny za organizowanie elementów w całość, musisz sprawić, że użytkownicy nie odczują tego sfrustrowany podczas uzyskiwania dostępu do Twojej witryny – dlatego naprawdę „potrzeba szybkości”.

Przeczytaj także: httpstat – narzędzie statystyczne do sprawdzania wydajności witryny internetowej

W tym przewodniku dowiesz się, jak przetestować czas odpowiedzi witryny internetowej z wiersza poleceń systemu Linux. Tutaj pokażemy jak sprawdzić czas w sekundach, zajmuje to:

  • do rozpoznawania nazw.
  • dla połączenia TCP z serwerem.
  • aby rozpocząć przesyłanie plików.
  • dla pierwszego bajtu, który ma zostać przesłany.
  • dla pełnej operacji.

Dodatkowo w przypadku witryn obsługujących protokół HTTPS zobaczymy również, jak przetestować czas w sekundach potrzebny na zakończenie przekierowania i połączenia SSL/uzgadniania z serwerem. Brzmi nieźle, OK, zaczynajmy.

cURL to potężne narzędzie wiersza poleceń umożliwiające przesyłanie danych z lub na serwer przy użyciu protokołów takich jak FILE, FTP, FTPS, HTTP, HTTPS i wielu innych. W większości przypadków służy do pobierania z wiersza poleceń lub do sprawdzania nagłówków HTTP. Tutaj jednak opiszemy jedną z jego mniej znanych funkcjonalności.

cURL ma przydatną opcję: -w do drukowania informacji na standardowe wyjście po zakończonej operacji. Zawiera pewne zmienne, których możemy użyć do przetestowania różnych czasów reakcji witryny wymienionych powyżej.

Wykorzystamy część zmiennych związanych z czasem, które można przekazać w danym formacie jako ciąg literałowy lub wewnątrz pliku.

Otwórz więc terminal i uruchom poniższe polecenie:

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

Zmienne w powyższym formacie to:

  • time_namelookup – czas w sekundach, jaki upłynął od początku do zakończenia rozpoznawania nazwy.
  • time_connect – czas w sekundach, jaki upłynął od początku do zakończenia połączenia TCP ze zdalnym hostem (lub serwerem proxy).
  • time_pretransfer – czas w sekundach, jaki upłynął od początku do chwili rozpoczęcia przesyłania pliku.
  • time_starttransfer – czas w sekundach, jaki upłynął od początku do chwili, gdy pierwszy bajt miał zostać przesłany.
  • time_total – całkowity czas w sekundach, przez który trwała pełna operacja (rozdzielczość milisekundowa).

Jeśli format jest zbyt długi, możesz zapisać go w pliku i przeczytać poniższą składnię:

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

W powyższym poleceniu flaga:

  • -s – mówi curlowi, aby pracował w trybie cichym.
  • -w – wypisz informacje na standardowe wyjście.
  • -o – używany do przekierowania wyjścia (tutaj odrzucamy wyjście, przekierowując je do /dev/null).

W przypadku witryn HTTPS możesz uruchomić poniższe polecenie:

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

W powyższym formacie nowe zmienne czasowe to:

  • time_appconnect – czas w sekundach, jaki upłynął od początku do zakończenia połączenia/uzgadniania SSL ze zdalnym hostem.
  • time_redirect – czas w sekundach potrzebny na wszystkie kroki przekierowania, w tym wyszukiwanie nazwy, połączenie, transfer wstępny i transfer, zanim rozpoczęła się ostateczna transakcja; oblicza pełny czas wykonania dla wielu przekierowań.

Ważne punkty, na które należy zwrócić uwagę.

  • Zauważysz, że wartości czasu odpowiedzi ciągle się zmieniają (z powodu kilku czynników) w miarę przeprowadzania różnych testów, dlatego zaleca się zebranie kilku wartości i uzyskanie średniej prędkości.
  • Po drugie, z wyników powyższych poleceń widać, że dostęp do strony internetowej za pośrednictwem protokołu HTTP jest znacznie szybszy niż za pośrednictwem protokołu HTTPS.

Aby uzyskać więcej informacji, zobacz stronę podręcznika cURL:

man curl

Na koniec, jeśli Twoje wyniki nie są zadowalające, musisz wprowadzić pewne zmiany na swoim serwerze lub w kodzie. Możesz rozważyć skorzystanie z poniższych samouczków, które wyjaśniają programy i wskazówki, dzięki którym strony internetowe ładują się szybciej w systemie Linux:

  1. Zainstaluj Nginx z Ngx_Pagespeed (optymalizacja prędkości) na Debianie i Ubuntu
  2. Przyspiesz wydajność Nginx dzięki Ngx_Pagespeed na CentOS 7
  3. Dowiedz się, jak przyspieszyć strony internetowe za pomocą modułu Nginx i Gzip
  4. Jak zwiększyć prędkość Internetu serwera Linux za pomocą protokołu TCP BBR

To wszystko! Teraz wiesz jak sprawdzić czas reakcji strony internetowej z poziomu wiersza poleceń. Możesz zadawać pytania za pomocą poniższego formularza opinii.