Co to jest cache serwera i jak przyspiesza stronę internetową?
Każde wejście na stronę internetową uruchamia szereg operacji wykonywanych przez serwer. W przypadku WordPressa oznacza to uruchomienie interpretera PHP, wykonanie wielu zapytań do bazy danych MySQL lub MariaDB, przetworzenie kodu wtyczek i motywu, a następnie wygenerowanie gotowego dokumentu HTML. Wszystko to dzieje się, zanim przeglądarka otrzyma pierwszy bajt danych. Cache serwera eliminuje konieczność wielokrotnego wykonywania tych samych operacji. Zamiast za każdym razem budować stronę od początku, serwer przechowuje wcześniej przygotowane dane i udostępnia je kolejnym użytkownikom. Efekt? Mniejsza liczba zapytań do bazy danych, niższe wykorzystanie procesora i pamięci RAM oraz znacznie krótszy czas odpowiedzi serwera. Co ważne, cache serwera nie jest jednym mechanizmem. Pod tą nazwą kryje się kilka różnych technologii, z których każda odpowiada za inny etap działania aplikacji.
Wydajny hosting to znacznie więcej niż szybki procesor. W SEOHOST wykorzystujemy technologie, które pozwalają ograniczyć liczbę operacji wykonywanych przez serwer przy każdym otwarciu strony. Dzięki temu WordPress może szybciej odpowiadać użytkownikom nawet przy większym ruchu. Zobacz hosting WWW, serwery VPS oraz nasze poradniki dotyczące optymalizacji WordPressa.
- Jak działa cache serwera?
- Page Cache, Object Cache i OPcache – czym się różnią?
- Cache serwera w WordPressie – kiedy naprawdę pomaga?
Jak działa cache serwera?
Wyobraźmy sobie stronę główną sklepu internetowego. Za każdym razem, gdy odwiedza ją nowy użytkownik, WordPress wykonuje dziesiątki lub nawet setki operacji. Pobiera ustawienia strony, odczytuje menu, listę produktów, konfigurację wtyczek, dane motywu i generuje końcowy dokument HTML.
Jeżeli w ciągu minuty tę samą stronę odwiedzi sto osób, serwer teoretycznie mógłby wykonać identyczne operacje sto razy. Właśnie tutaj pojawia się mechanizm cache.
Przy pierwszym wywołaniu aplikacja generuje kompletną odpowiedź. Zostaje ona zapisana w pamięci podręcznej. Kolejne żądania nie wymagają już uruchamiania PHP ani ponownego wykonywania zapytań SQL – serwer zwraca gotowy rezultat.
To właśnie dlatego często spotykamy określenia Cache HIT oraz Cache MISS.
| Stan | Co oznacza? |
|---|---|
| Cache HIT | Dane znajdują się już w pamięci podręcznej i mogą zostać natychmiast zwrócone. |
| Cache MISS | Serwer musi wygenerować odpowiedź od początku i dopiero później zapisuje ją w cache. |
Jak już pokazaliśmy w artykule Co to jest CDN i kiedy warto go używać?, pamięć podręczna może działać w różnych miejscach infrastruktury. CDN przechowuje kopie zasobów na serwerach brzegowych, natomiast cache serwera działa bezpośrednio tam, gdzie uruchomiona jest aplikacja.
Jeżeli chcesz lepiej zrozumieć poszczególne technologie, przeczytaj również Co to jest Redis?, Jak działa LiteSpeed Cache? oraz Jak przyspieszyć WordPress?. Razem pokazują, w jaki sposób nowoczesny hosting ogranicza liczbę operacji wykonywanych przez serwer i skraca czas odpowiedzi strony.
Cache nie przyspiesza wykonywania kodu PHP. Jego zadaniem jest ograniczenie liczby sytuacji, w których PHP w ogóle musi zostać uruchomione.
Page Cache, Object Cache i OPcache – czym się różnią?
Mówiąc o cache serwera, bardzo często wrzucamy do jednego worka kilka technologii, które rozwiązują zupełnie różne problemy. Tymczasem mogą one działać równocześnie i wzajemnie się uzupełniać.
| Technologia | Co przechowuje? | Przykład |
|---|---|---|
| Page Cache | Gotowy kod HTML strony. | LiteSpeed Cache, Varnish. |
| Object Cache | Wyniki zapytań do bazy danych i obiekty WordPressa. | Redis, Memcached. |
| OPcache | Skompilowany kod PHP. | Zend OPcache. |
To ważne rozróżnienie. LiteSpeed Cache nie pełni tej samej funkcji co Redis. Pierwszy najczęściej zapisuje gotową stronę HTML, drugi przechowuje dane wykorzystywane podczas wykonywania kodu PHP. Oba rozwiązania mogą pracować jednocześnie i właśnie takie połączenie jest dziś jedną z najczęściej stosowanych konfiguracji dla WordPressa.
Jak już wspominaliśmy przy okazji artykułu HTTP/2 vs HTTP/3 vs QUIC, wydajność witryny jest sumą wielu elementów. Cache serwera skraca czas generowania strony, natomiast nowoczesne protokoły komunikacji odpowiadają za sprawniejsze dostarczenie jej do przeglądarki.
Redis, LiteSpeed i OPcache nie konkurują ze sobą. Każda z tych technologii działa na innym etapie przetwarzania żądania. Odpowiednio skonfigurowane potrafią znacząco ograniczyć obciążenie serwera i poprawić wydajność WordPressa bez konieczności zwiększania parametrów hostingu.
Cache serwera w WordPressie – kiedy naprawdę pomaga?
WordPress jest aplikacją dynamiczną. Nawet prosta strona firmowa wykonuje wiele operacji zanim wyświetli gotowy dokument HTML. Im więcej wtyczek, produktów WooCommerce, wpisów czy elementów motywu, tym większa liczba zapytań do bazy danych.
W praktyce największą poprawę wydajności obserwujemy tam, gdzie ruch jest powtarzalny. Strona główna, wpisy blogowe, kategorie czy strony ofertowe są często odwiedzane przez wielu użytkowników, a ich zawartość nie zmienia się co kilka sekund. To idealne miejsca dla Page Cache.
Z kolei Redis Object Cache sprawdza się tam, gdzie WordPress wielokrotnie wykonuje podobne zapytania do bazy danych. Dzięki przechowywaniu wyników w pamięci RAM aplikacja znacznie rzadziej musi odwoływać się do silnika MySQL lub MariaDB.
Nie każda strona powinna być cache'owana. Koszyk WooCommerce, panel klienta, formularze płatności czy strony po zalogowaniu zawierają dane indywidualne. Zapisanie ich w pamięci podręcznej mogłoby prowadzić do wyświetlania nieprawidłowych informacji innym użytkownikom.
Dlatego dobrze skonfigurowany system cache nie polega na zapisaniu wszystkiego, lecz na świadomym określeniu, które elementy mogą zostać przechowane, a które zawsze powinny być generowane na bieżąco.