Jaki ruch na stronie wytrzyma mój serwer?
Kamil Porembiński
Kamil Porembiński
25.03.2018

Jaki ruch na stronie wytrzyma mój serwer?

Wybierając hosting, najczęściej skupiamy się na jego pojemności, limitach, cenie lub dodatkach, jakie oferuje w standardzie. Czasami jednak pada bardzo ważne pytanie: Czy ten serwer jest wystarczająco wydajny dla mojej strony? Jaki wytrzyma on ruch na moim serwisie? Jak mawiał Zbigniew Herbert – pytania z pozoru proste wymagają zawiłej odpowiedzi. A jedyną poprawną odpowiedzią na to pytanie jest ulubione „to zależy”.

Podcast

If you would rather listen to us than read the article, below you will find our podcast. This is the audio version of this article. You can listen to it through the system’s „Podcasts” application on iOS, your choice of Android, iTunes, YouTube, SoundCloud i Spreaker.

Warto pamiętać, że wejście wejściu nierówne

Właściciele popularnych serwisów internetowych są przyzwyczajeni do dużej liczby odwiedzających ich stronę w tym samym momencie:

Ruch na stronie na jednym z naszych pakietów hostingowych
Ruch na stronie na jednym z naszych pakietów hostingowych

Patrząc na tego typu liczbę, można być pod dużym wrażeniem ruchu na stronie. Wiele osób zastanawia się jak potężny musi być to serwer, aby obsłużyć tylu klientów. Ilość osób w danym momencie na stronie sama w sobie jest tylko liczbą a dopiero w połączeniu z innymi danymi pozwala na oszacowanie realnego obciążenia.

Bez wiedzy jaki to serwis, w jakich technologiach został napisany i co robią ci użytkownicy na nim ciężko jest stwierdzić jakie powoduje on obciążenie na serwerze. Poznanie tych wielu niewiadomych dopiero pozwoli nam odpowiedzieć na pytanie Jaki ruch na stronie wytrzyma mój serwer?

Serwer jest jak okienko na poczcie

Aby zrozumieć problem z jakim się mierzymy posłużymy się analogią do ruchu klientów w zwykłej placówce pocztowej. Ilu klientów jest w stanie ona obsłużyć? Wyobraźmy sobie, że do okienka jednego lub dwóch przychodzą klienci, którzy chcą kupić tylko znaczek pocztowy. Obsługa poczty ma przygotowane terminale płatnicze, poukładane znaczki o konkretnych nominałach oraz gotówkę do wydawania reszty. Wszystko jest ułożone na ladzie w taki sposób, aby jak najszybciej obsłużyć klienta. W tej sytuacji placówka jest w stanie obsłużyć dziesiątki klientów.

Można to porównać do dobrze zoptymalizowanej strony typu landing page albo nieskomplikowanego bloga. Zapytania i odpowiedzi od serwera są szybkie i proste. Tego typu strony obsłużą dużą liczbę klientów w ciągu sekundy.

DDoS
DDoS

Wyobraźmy jednak sobie, że w okienku pocztowym panuje bałagan. Znaczki pocztowe są wrzucone do jednego pudełka. Za każdym razem, kiedy klient prosi o konkretny produkt, obsługa musi go szukać. Mimo że pracownik bardzo szybko przegląda znaczki w pudełku, to jednak odnalezienie tego konkretnego zajmuje więcej czasu. Dodatkowo z racji, że wszystko jest pomieszane, obsługa zapisuje ile wydała znaczków danego typu, aby wiedzieć, czy są one jeszcze w pudełku. Kolejka się wydłuża, część klientów rezygnuje, co przekłada się na mniejszą liczbę obsłużonych osób.

Ze stronami internetowymi jest podobnie. Problem w kodzie strony www, jej przestarzałe oprogramowanie, stare wersje CMSa, jakiego używamy czy masa wtyczek do niego dodanych – może powodować wolniejsze działanie witryny. Kiedy po raz pierwszy stawiana była strona, była ona lekka bez zbędnych dodatków. Wszystko było w niej poukładane. Z biegiem czasu pojawiało się na niej coraz więcej elementów czy wtyczek. Serwer działa nadal tak samo szybko, ale zlecamy mu w konsekwencji coraz więcej zadań. Mimo iż każde zadanie trwa ułamki sekund to przy dużej ich ilości ma to już znaczenie.

Kolejka na poczcie.
Kolejka na poczcie

Jak to w życiu bywa ludzie na poczcie nie tylko kupują znaczki. Wysyłają paczki, płacą różnego rodzaju rachunki wypełniając przy okienku kwitki. Tego typu operacje trwają troszkę czasu, mimo że nie są skomplikowane. Pojawiają się też klienci z kartkami awizo, zmuszając obsługę do szukania niedostarczonych osobiście listów. Pracownicy przeszukują różnego rodzaju półki, worki z listami by wydać list.

Strony internetowe również oferują wiele usług. Są sklepami internetowymi z wyszukiwarką produktów, umożliwiają rejestrację i zakładanie własnych profili, posiadają skomplikowaną strukturę, która generuje na bieżąco podobne artykuły do aktualnie czytanego. Dlatego należy pamiętać, że zupełnie inne obciążenie generuje strona, która tylko wyświetla artykuły w porównaniu do serwisu posiadającego wyszukiwarkę produktów.

Promocja w hipermarkecie

Czy ten hosting wystarczy, jeżeli w miesiącu mam 55000 unikalnych użytkowników? Aby odpowiedzieć dobrze na to pytanie, warto się zastanowić nad rozkładem ruchu klientów na stronie. Czy jest to średnio 1800 UU dziennie, czy może są do masowe wejścia na witrynę w krótkim okresie czasu?

Wysyłając newsletter do klientów, organizując promocje w sklepie internetowym czy trafiając na główną stronę serwisu wykop.pl, musimy liczyć się z dużą liczbą odwiedzających, w krótkim okresie. Bez przygotowania strony internetowej do takiego zadania, możemy spodziewać się jej niedostępności. Wprowadzenie mechanizmów cachujących lub wyposażenie jej w Cloudflare może nam pomóc przetrwać zmasowane wejścia na stronę.

Oprogramowanie ma znaczenie

Oprogramowanie jakie jest zainstalowane na serwerze oraz to z jakiego korzysta strona internetowa ma ogromne znaczenie dla prędkości działania samego serwisu jak i liczby klientów jakie jest w stanie obsłużyć. Strona WWW może działać nawet 4 razy szybciej jeżeli wybierzemy najnowsze PHP.

Porównanie prędkości wczytywania WordPressa pod PHP 5.6 oraz 7.1
Porównanie prędkości wczytywania WordPressa pod PHp 5.6 oraz 7.1

Na powyższym wykresie mamy czas generowania się strony opartej o WordPressa na PHP 5.6 oraz 7.1. Strona, która działała bardzo wolno i wczytywała się średnio po 5 sekund na każdą podstronę, wykorzystywała stare oprogramowanie. Zmiana wersji PHP na nowszą spowodowała jej diametralne przyspieszenie.

Nie tylko wersja PHP jest tutaj ważna, ale również to w jaki sposób zbudowana jest sama witryna internetowa. Duża liczna zbędnych dodatków, zapominanych i nieużywanych pluginów ma bardzo często negatywny wpływ na działanie samej strony internetowej.

Jak określić wydajność strony internetowej?

Korporacje oraz większe serwisy internetowej korzystają z narzędzi do przeprowadzania testów wydajnościowych. Wykonuje je się cyklicznie w celu oceny stopnia spełnienia wymagań wydajnościowych przez dany system, stronę internetową lub jakiś jej moduł. Wymagania jakie musi spełniać dany system, można podzielić na kilka kategorii:

  • szybkość przetwarzania – strona internetowa pod obciążeniem musi odpowiadać z akceptowalną szybkością,
  • równoległość przetwarzania – wymaganie określa ile maksymalnie użytkowników może w jednym momencie korzystać ze strony internetowej,
  • wielkość obsługiwanych danych – jak dużo danych może przetwarzać dana strona internetowa (np. 20000 produktów w sklepie, 10MB na plik zdjęciowy).

Testy wydajnościowe polegają na sztucznym wygenerowaniu ruchu na stronie i monitoringu obciążenia serwera jakie generuje ten ruch. Symulowane są różne zachowania użytkowników: od przypadkowego i losowego klikania w linki, po proces zakupowy czy wyszukiwanie produktów. Testy te przeprowadza się początkowo na małej liczbie jednoczesnych użytkowników, która potem jest zwiększana.

Mniejsze witryny internetowe, blogi lub sklepy mogą zwrócić się z prośbą o pomoc do swojego hostingu, aby pomóc oszacować obciążenie generowane przez ich serwis.

Zdecydowanie lepsza wydajność strony po jej optymalizacji
Zdecydowanie lepsza wydajność strony po jej optymalizacji

Optymalizacja strony internetowej, aby obsługiwała coraz większy ruch na stronie to ciągły proces, składający się on ze zmian po stronie kodu witryny oraz dopasowywania usług serwerowych.