Duży ruch na hostingu współdzielonym? Tak, to możliwe!
Ach, to pytanie spędza sen z powiek niejednemu właścicielowi strony, który cieszy się dużą popularnością. Cóż, nie ma na to jednoznacznej odpowiedzi. A właściwie, to zależy. Ale pozwólcie, że wam opowiem pewną historię, która dobitnie pokazuje, że nawet na hostingu współdzielonym można poradzić sobie z ogromnymi falami ruchu.
Zacznijmy od przykładu naszego klienta, którego strona wygenerowała ogromny ruch w zaledwie kilka chwil. Jego serwer, choć współdzielony, z łatwością dał radę i był gotowy na jeszcze więcej. Chcecie zobaczyć, co naprawdę oznacza duży ruch? Zapraszam was na Pyrkon, Festiwal Fantastyki w Poznaniu. To prawdziwe oblężenie, gdy do miasta przyjeżdża nagle kilkadziesiąt tysięcy ludzi!
To samo dzieje się ze stroną internetową festiwalu. Jeden uczestnik może wygenerować naprawdę dużo wejść, sprawdzając dojazd, szukając opisu konkursu, w którym chce wziąć udział, lub informacji o otwarciu sleep rooma. Gdy w tym samym czasie robi to więcej osób, serwer czuje się coraz bardziej obciążony. Im więcej ludzi jednocześnie wykonuje te operacje, tym więcej danych musi przetworzyć.
Ale co właściwie oznacza “duży ruch” na stronie WWW? Sama liczba użytkowników nie wystarczy, by to określić. Musimy wiedzieć, jakie działania wykonują oni na naszej witrynie. Czy to portal ogłoszeniowy z wyszukiwarką, sklep internetowy, w którym klienci dodają produkty do koszyka, czy może blog, na którym użytkownicy tylko czytają artykuły? W każdym z tych przypadków ten sam ruch będzie generował inne obciążenie serwera, ponieważ użytkownicy będą wykonywać różne operacje.
Nie można też zapominać o oprogramowaniu, na którym opiera się nasza strona. Czy to WordPress, PrestaShop, a może Magento? Każdy z tych CMS-ów przetwarza dane nieco inaczej, co także przekłada się na obciążenie serwera.
Jak poradzić sobie z dużym ruchem na hostingu współdzielonym?
Jak widzicie, to naprawdę skomplikowana sprawa. Ale nie oznacza to, że nie da się osiągnąć świetnych wyników na hostingu współdzielonym. Jest to jak najbardziej możliwe, choć wymaga trochę pracy.
Przede wszystkim musimy zadbać o odpowiednią optymalizację strony. Ograniczenie wtyczek do minimum, skupienie się tylko na tych, które są niezbędne, i upewnienie się, że są one wydajne. Warto też regularnie aktualizować naszą witrynę i uważać na niekompatybilne funkcje, które mogłyby spowodować problemy.
Ważne jest także, aby korzystać ze sprawdzonej oferty hostingowej, która zapewnia odpowiednio mocny serwer współdzielony. I nie zapominajmy o czystości kodu – to podstawa, by nasza strona dobrze działała nawet przy dużym ruchu.
Stronyinternetowe.uk to firma, która świetnie sobie radzi z takimi wyzwaniami. Przekonajcie się sami!
Festiwal Fantastyki Pyrkon – jak sobie poradził?
Wróćmy do przykładu Pyrkonu. Strona tego festiwalu, zbudowana w oparciu o WordPress, w okresie od 28 marca do 28 kwietnia odnotowała aż 174 783 użytkowników, którzy wygenerowali 361 886 sesji i 1 213 288 odsłon. Największy ruch przypadł na okres 22-28 kwietnia, kiedy stronę odwiedziło niemal 100 000 użytkowników. A w szczycie popularności, 26 kwietnia, w ciągu zaledwie 24 godzin, stronę odwiedziło ponad 30 000 osób. I to wszystko na serwerze współdzielonym, przy zachowaniu stuprocentowej dostępności usług!
Jak to możliwe? Pytałem osobę odpowiedzialną za wdrożenie, Marcina Krzemińskiego, o szczegóły. Okazuje się, że kluczowe było ograniczenie wtyczek do minimum, skupienie się tylko na tych niezbędnych i upewnienie się, że są one wydajne. Na stronie Pyrkonu działało niemal 20 wtyczek, wymaganych do realizacji celów biznesowych, a część z nich odpowiadała za integrację z dodatkowymi usługami zewnętrznymi.
Ważne jest też, aby przed wprowadzeniem zmian czy aktualizacji najpierw przetestować je na wersji testowej strony, a dopiero później wdrożyć na wersję produkcyjną. My do tego celu wykorzystujemy Git, wp-cli oraz dostęp do serwera przez SSH, ale każdy może to robić po swojemu.
Fundamentem motywu Pyrkonu jest Underscores – minimalistyczny, dobrze zoptymalizowany motyw startowy, na bazie którego można zakodować własny wygląd. Przy tworzeniu kodu CSS pomocny okazał się Sass, czyli preprocesor CSS, dzięki któremu można uporządkować style i uniknąć ich duplikowania. Do testowania wyświetlania motywu w różnych przeglądarkach wykorzystywaliśmy również zestaw narzędzi Gulp i BrowserSync.
Nieodłącznym elementem każdej strony internetowej jest także cache. Dzięki pamięci podręcznej, nasza strona może ładować się z już uprzednio wygenerowanych treści statycznych, co znacznie zmniejsza obciążenie serwera i przyspiesza wyświetlanie. W przypadku Pyrkonu wykorzystywana jest wtyczka W3 Total Cache, wspierana dodatkowo przez Autoptimize do minifikacji kodu HTML, CSS i JS.
Serwer pod Pyrkonem – co się w nim kryje?
No dobrze, ale co się dzieje, gdy na stronę Pyrkonu wchodzi 600 osób jednocześnie? Serwer, na którym jest hostowana, to prawdziwy potwór!
Maszyna opiera się w całości na szybszych dyskach SSD – a dokładniej, na macierzach CEPH Full NVMe, które są wielokrotnie szybsze niż klasyczne SSD. Co więcej, każdy blok danych jest składowany jednocześnie na trzech dyskach w trzech różnych serwerach macierzowych. To gwarantuje niezawodność i błyskawiczną responsywność.
Ale to nie wszystko. Serwer wykorzystuje również obecnie jedne z najbardziej wydajnych procesorów AMD EPYC. Mowa o dwóch procesorach 7451, z których każdy zbudowany jest z 24 rdzeni, zdolnych do pracy nad 48 wątkami jednocześnie. Każdy z nich taktowany jest częstotliwością 2,3 GHz, a w momencie maksymalnego obciążenia, wszystkie 24 rdzenie w takim procesorze działają na raz z częstotliwością 2,9 GHz. Przy chwilowym obciążeniu, wymagającym dużej mocy obliczeniowej, procesor nawet przyspiesza do 3,2 GHz! Im wyższa moc obliczeniowa, tym szybsze wykonywanie zadań, takich jak generowanie strony, obsługa zapytań do bazy danych czy serwowanie plików statycznych.
Na wydajność strony WWW ma też wpływ zastosowane oprogramowanie. Jeśli strona korzysta z najnowszej wersji PHP 8.3, jest w stanie obsłużyć większą liczbę użytkowników jednocześnie niż w przypadku starszej wersji, np. 5.6. Podobnie sytuacja wygląda z aktualnymi wersjami samego systemu CMS, np. WordPress, PrestaShop czy Magento. Błędy w kodzie strony mogą powodować wolniejsze przetwarzanie danych i stanowić dodatkowe obciążenie dla serwera.
Podsumowanie
Jak widzicie, to naprawdę skomplikowana sprawa. Ale nie oznacza to, że nie da się osiągnąć świetnych wyników na hostingu współdzielonym. Jest to jak najbardziej możliwe, aczkolwiek wymaga odpowiedniej optymalizacji strony, regularnych aktualizacji i korzystania ze sprawdzonej oferty hostingowej.
Stronyinternetowe.uk to firma, która świetnie sobie radzi z takimi wyzwaniami. Przekonajcie się sami!