O projekcie

Po co powstał ten projekt?

Naszym celem było sprawdzenie jak wygląda „szybkość” stron polskiego Internetu. Początkowo było to tylko eksperyment, czy raczej proof of concept, ale z czasem postanowiliśmy udostępnić proste narzędzie również polskiej społeczności. Projekt rozwija się w swoim tempie, powoli planujemy wprowadzać nowe rzeczy, o których będziemy informować w dzienniku zmian.

Jak to działa?

Nasze skrypty cyklicznie mierzą czas, w jakim generowany jest index.php znajdujący się pod sprawdzaną domeną. Skupiamy się na czymś, co można sensownie, szybko zmierzyć bez czekania na pełne załadowanie strony (assetów). Dlatego skupiamy się na TTFB.

Jaką wartość daje mi webspeed.pl?

Można sprawdzić, jak strona zachowywała się w czasie. Na przykład jaki jest jej średni czas TTFB dla /index.php. Jeśli odpowiedź serwera jest długa, to może oznaczać 2 rzeczy:

  • serwer jest zbyt wolny/obciążony,
  • strona może być źle zoptymalizowana.

Nasze testy sprawdzają również status odpowiedzi, więc można sprawdzić czy strona odpowiadała poprawnie (lub mogła pojawić się niedostępność). Można też sprawdzić jak zachowuje się strona po zmianie serwera. To daje pewien pogląd na to, czego oczekiwać od swojego usługodawcy hostingowego i umiarkowanie uzbraja w argumenty przy budowaniu oczekiwań.

Wierzymy, że narzędzie dostarczy ciekawych informacji i pomoże w ocenie zmian na stronach (np. optymalizacji), ocenie zmiany serwera, jeśli taka zmiana nastąpi i innych. Możliwości są tu spore.

Metodologia pomiarów

Wszystkie sprawdzenia realizujemy przy użyciu infrastruktury chmurowej Vultr z DC w Warszawie.

Proces discovery

Raz na dobę odpytujemy wszystkie domeny z naszej bazy o następujące dane:

  • delegacja domeny DNS
    host -t ns webspeed.pl
  • serwery MX poczty
    host -t mx webspeed.pl
  • adres IP serwera
    host -t A webspeed.pl
  • docelowy adres URL
    curl --insecure --max-time 60 -s -o /dev/null -L --max-redirs 5 -I -w '% {url_effective}' webspeed.pl
  • odpytujemy typ danych o charakter strony (na przykładzie WordPress)
    curl --insecure --max-time 60 -s -o /dev/null -I -w '% {http_code}' https://webspeed.pl/wp-cron.php
  • w przypadku serwisów typu WordPress sprawdzamy czas wczytywania /feed:
    curl --insecure --max-time 20 -s -o /dev/null -I -w '% {time_total}' https://webspeed.pl/feed/
  • serwer WWW, który serwuje stronę
    curl --insecure --max-time 20 -s -o /dev/null -I -w '%header{server}' https://webspeed.pl/

Proces sprawdzania

Pomiędzy godziną 6 a 24 odpytujemy wszystkie strony co 2 godziny o następujące dane:

  • czas odpowiedzi strony
    curl --insecure --max-time 20 -s -o /dev/null -I -w '% {time_total}' https://webspeed.pl/
  • odpowiedź serwera http
    curl --insecure --max-time 20 -s -o /dev/null -I -w '% {http_code}' https://webspeed.pl/

Następnie dane przetwarzamy i na ich podstawie generujemy wykresy.

„Nowa funkcja?”

Jak dodać pomysł?

Projekt rozwija się, tworzony jest z udziałem społeczności, dlatego jesteśmy otwarci na Twoje pomysły. Jeśli masz pomysł (np. jak usprawnić webspeed, jaką funkcję dodać, co zmienić), dodaj go w polu wprowadzania (maksymalnie 140 znaków) i wciśnij enter lub kliknij w przycisk ze strzałką znajdujący się obok formularza wprowadzania. Ta akcja doda Twój pomysł do listy i pozwoli innym osobom na oddawanie na nie swoich głosów. Dodaj swój pomysł.

Zasady głosowania

Każdy aktywny pomysł jest widoczny na liście z okienkiem do oddawania głosu. Okienko znajduje się po lewej stronie pomysłu, a kliknięcie w nie pozwala oddać jeden głos na jeden pomysł. Każdy pomysł jest rozważany i w miarę rozwoju może zostać wdrożony rozszerzając możliwości webspeed.