Siła CMS, takiego jak Joomla, jest oparta na bazie danych, dzięki czemu cała witryna i treść są dynamiczne. Ale jeśli chodzi o wydajność, ta infrastruktura bazy danych to pięta achillesowa. Pobieranie treści z bazy danych przy każdym trafieniu jest wąskim gardłem wydajności. Ale istnieje doskonały środek, wykorzystujący pamięć podręczną Joomla.
W tym artykule przedstawimy ostateczny przewodnik dotyczący korzystania z wielu form pamięci podręcznej Joomla, aby zapewnić Twojej witrynie natychmiastowy i doskonały wzrost wydajności.
Co to jest pamięć podręczna?
Zgodnie z Wikipedia:
Pamięć podręczna to składnik sprzętu lub oprogramowania, który przechowuje dane, dzięki czemu przyszłe żądania dotyczące tych danych mogą być obsługiwane szybciej; dane przechowywane w pamięci podręcznej mogą być wynikiem wcześniejszych obliczeń lub kopią danych przechowywanych w innym miejscu. ZA trafienie w pamięci podręcznej występuje, gdy żądane dane można znaleźć w pamięci podręcznej, a brak pamięci podręcznej pojawia się, gdy nie może. Trafienia w pamięci podręcznej są obsługiwane przez odczytywanie danych z pamięci podręcznej, co jest szybsze niż ponowne obliczanie wyniku lub odczytywanie z wolniejszego magazynu danych; w związku z tym im więcej żądań można obsłużyć z pamięci podręcznej, tym szybciej działa system.
Ale co to oznacza w kontekście Joomla?
Gdy odwiedzający uzyskuje dostęp do Twojej witryny, Joomla zwykle uruchamia serię zapytań w bazie danych, aby pobrać wszystkie informacje, takie jak menu, zawartość, moduły i inne dynamiczne treści, i renderować je w locie.
Wraz ze wzrostem ilości danych w Twojej bazie danych lub gdy Twoja witryna ma coraz więcej odwiedzających, wydajność całej konfiguracji zaczyna się pogarszać. Nawet przy niewielkiej liczbie użytkowników na współdzielonym hostingu wydajność może być niska, niezależnie od tego, czy Twoja witryna ma dużo odwiedzających, czy nie.
Kiedy pamięć podręczna Joomla jest w użyciu, zamiast uderzać w bazę danych MySQL z tymi samymi zapytaniami w kółko, twoje pierwsze trafienie przechowuje dane w zestawie plików lokalnych (w katalogu pamięci podręcznej Joomla). Kolejne trafienia będą pobierać zawartość z tych plików, a nie z bazy danych.
Dzieje się tak, ponieważ odczytywanie danych z pliku lokalnego jest wielokrotnie szybsze niż odczytywanie ich z bazy danych.
Oznacza to, że cała strona internetowa zostanie załadowana niemal natychmiast i będzie działać znacznie lepiej. Twoja strona internetowa będzie działać szybciej i będzie w stanie obsłużyć więcej jednoczesnych użytkowników.
Oto jak cała koncepcja wygląda na obrazku:
Należy pamiętać, że różni się to od buforowania przeglądarki - buforowanie przeglądarki jest zalecane przez serwer WWW (ale wykonywane przez przeglądarkę lokalną). Z drugiej strony buforowanie po stronie serwera to faktyczne buforowanie zasobów i kodu HTML utworzonego na serwerze WWW.
Jeśli chcesz dowiedzieć się więcej o tym, jak wykorzystać pamięć podręczną przeglądarki, przeczytaj ten artykuł tutaj.
Oczywiście JEDYNYM sposobem, w jaki naprawdę możesz poprawić wydajność, jest przejście na a szybszy serwer hostingowy. Spójrz na nasz hosting VPS InMotion przejrzyj tutaj.
Jak włączyć pamięć podręczną w Joomla
Buforowanie to funkcja zaimplementowana w rdzeniu Joomla. Dlatego aktywacja podstawowej pamięci podręcznej Joomla jest bardzo prosta.
Z Globalna Konfiguracja, kliknij Konfiguracja Tab, a po prawej stronie znajduje się Ustawienia pamięci podręcznej
Kliknij menu i wybierz WŁĄCZONE - Zachowawcze buforowanie or WŁ – buforowanie progresywne w ustawieniach pamięci podręcznej i podaj rozsądną kwotę w ciągu kilku minut. 60 minut powinno być najmniejszą ilością dla większości stron internetowych.
Zachowawcze buforowanie pozwala określić, że określone moduły nie są buforowane (w ustawieniach samych modułów).
Buforowanie progresywne zastępuje to ustawienie i zawsze buforuje wszystkie moduły. Zwykle sami używamy buforowania konserwatywnego, aby zachować możliwość decydowania o niebuforowaniu określonego modułu.
Ogólnie zalecamy, aby ten czas był dłuższy, zwykle 240 minut (4 godziny) lub nawet więcej. Zawsze możesz opróżnić (lub zresetować) pamięć podręczną, jeśli chcesz ją odświeżyć.
Po naciśnięciu Zastosuj, zostanie włączone buforowanie Joomla dla modułów i komponentów. jednak to ustawienie nie wystarczy, przed nami jeszcze jeden krok! Nadal chcemy włączyć buforowanie stron.
Aby włączyć buforowanie stron Joomla, musisz przejść do Rozszerzenia > Wtyczki, wyszukaj Cache i kliknij System - Pamięć podręczna stron. Musisz się upewnić, że ta wtyczka jest włączona. Możesz także ustawić buforowanie przeglądarki, włączając Użyj buforowania przeglądarki przełącznik.
Możesz także wybrać wykluczenie określonych pozycji menu z buforowania, na przykład poniżej wykluczono menu Skontaktuj się z nami.
Jeśli istnieją strony, które chcesz wykluczyć z pamięci podręcznej, możesz przejść do karty Zaawansowane i określić każdy adres URL, który chcesz wykluczyć z pamięci podręcznej. Musisz określić każdy adres URL, który chcesz wykluczyć z pamięci podręcznej, w osobnym wierszu.
Obsługiwane są również wyrażenia regularne, na przykład about\-[az]+ wykluczy wszystkie adresy URL zawierające 'about-', takie jak 'about-us', 'about-me', 'about-joomla' itp. podczas gdy /component /users/ wykluczy wszystkie adresy URL, które mają /komponent/users/.
Po włączeniu i zapisaniu powinieneś zobaczyć znacznie poprawiony czas ładowania strony internetowej.
Jeśli używasz narzędzia do testowania szybkości strony, takiego jak https://webpagetest.org/ powinieneś zobaczyć wyraźną różnicę, zwłaszcza jeśli włączyłeś również buforowanie przeglądarki.
Powinieneś w szczególności zauważyć wyraźną różnicę w czasie do pierwszego bajtu:
Jeśli Twój host Joomla to obsługuje, na przykład hosting CollectiveRay.com - możesz także włączyć Memcache, aby Twoja witryna Joomla była jeszcze szybsza!
Jak wyczyścić lub opróżnić pamięć podręczną Joomla?
Po włączeniu pamięci podręcznej Joomla zawartość interfejsu użytkownika witryny nie będzie odświeżana, dopóki czas buforowania nie wygaśnie zgodnie z ustawieniami.
Co więc zrobisz, jeśli chcesz zresetować pamięć podręczną? To dość prosta procedura. Po prostu przejdź do System > Wyczyść pamięć podręcznąi kliknij Usuń wszystko. Spowoduje to opróżnienie całej pamięci podręcznej Joomla, a zawartość zostanie teraz zaktualizowana świeżą zawartością.
Możesz po prostu opróżnić tylko określone części pamięci podręcznej, zaznaczając odpowiednie pole wyboru i klikając Usuń.
Alternatywna wtyczka pamięci podręcznej Joomla
Jednym z problemów, który znajdujemy w natywnej pamięci podręcznej Joomla jest to, że nie można zresetować tylko jednej strony. W przypadku witryn, które mają setki, a nawet tysiące stron, resetowanie całej pamięci podręcznej za każdym razem, gdy wprowadzasz niewielką zmianę, zaczyna stać się wąskim gardłem, zwłaszcza jeśli masz duży ruch.
W takim przypadku zalecamy wybranie alternatywnej wtyczki pamięci podręcznej Joomla, która umożliwia zresetowanie pamięci podręcznej strony na poziomie adresu URL lub strony.
Naszą ulubioną alternatywną wtyczką pamięci podręcznej Joomla jest JotCache. Oprócz zaawansowanych ustawień buforowania, możesz także podgrzać bufor (tzn. indeksować wszystkie strony tak, aby znalazły się w buforze zanim użytkownik je kliknie, wyczyścić bufor tylko jednej strony i wykluczyć określone adresy URL lub całe komponenty z buforowania.Na przykład możesz chcieć wykluczyć składnik Virtuemart z buforowania lub moduł/składnik użytkowników.
Sprawdź zaawansowane ustawienia tutaj:
A oto ekran, który pozwala zresetować lub wyczyścić pamięć podręczną tylko jednej strony:
Jak włączyć Joomla Memcached
Jedną z fiksacji, które mieliśmy w niedawnej przeszłości, jest fiksacja, która sprawia, że nasza strona ładuje się niesamowicie szybko - i wtedy po raz pierwszy usłyszeliśmy o Joomla Memcache(d).
Jeśli jest to obsługiwane przez infrastrukturę serwerową, lubimy to umożliwić. Na przykład niektóre z naszych witryn, które są włączone SiteGround, włącz tę opcję, ponieważ daje to niezły wzrost prędkości. Nawiasem mówiąc, podoba nam się serwer ustawiony na SiteGround. Domyślnie zmiana witryny z taniego hostingu współdzielonego na SiteGround strona ładowania zostanie skrócona o co najmniej 2 sekundy (bez innych zmian).
Oznacza to, że bardzo dobrze konfigurują swoje serwery. Ale jest coś więcej, aby Twoja witryna była szybka. W tym miejscu do gry wkracza Joomla Memcached.
Oprócz domyślnej konfiguracji, SiteGround oferuj trzy poziomy pamięci podręcznej, aby Twoja witryna była szybsza
- Statyczna pamięć podręczna — buforuje zawartość statyczną (podobne do tego, co zrobiłby CDN)
- Dynamic Cache - Tworzy kopie dynamicznej zawartości Twojej witryny i przechowuje je w pamięci RAM serwera. Wymaga to ich własnej niestandardowej wtyczki, aby dobrze współpracować z Twoją witryną i serwerem, na którym jest hostowana
- Technologia Joomla Memcached przyspiesza wywołania bazy danych, wywołania API i renderowanie stron poprzez przechowywanie danych i obiektów w pamięci, aby zmniejszyć liczbę zapytań do bazy danych. SiteGround jest jedyną firmą, która stosuje algorytm memcached w środowisku współdzielonego serwera.
Wspaniałą rzeczą jest to, że Joomla domyślnie obsługuje memcache, ale ponieważ wymaga to pewnych poprawek, nie znajdziesz go w normalnych ustawieniach pamięci podręcznej w konfiguracji globalnej.
Jak widać poniżej, ustawienia memcached Joomla 3 są ukryte (poniżej nie ma opcji memcached) i należy je aktywować, wykonując małą poprawkę w pliku configuration.php.
Aby włączyć Memcache, musisz edytować plik Configuration.php i edytować następujące dwie zmienne:
do:
gdzie xxxxxx to port określony przez serwer hostingowy. Sprawdź informacje na serwerze hostingowym.
Ustawienia pamięci Joomla Memcache
Gdy to zrobisz, Twoja Joomla jest teraz zapisana w pamięci podręcznej i powinieneś zauważyć kolejną poprawę czasu ładowania swojej witryny. Jest to szczególnie przydatne w przypadku ruchliwych witryn internetowych. Upewnij się, że sprawdziłeś, czy Twoja witryna obsługuje memcached - jeśli nie, powinieneś to podać SiteGround spojrzenie ;)
Na tej stronie jest wiele innych artykułów na temat wydajności, jednym z bardziej popularnych jest sposób naprawy błędu o nazwie, wykorzystanie pamięci podręcznej przeglądarki - mamy pełne wyjaśnienie CollectiveRay.
Jak włączyć PHP OpCache dla Joomla
Powyższe punkty powinny już doprowadzić Twoją witrynę do całkiem lepszego czasu ładowania i wykonywania. Ale wciąż jest jedna rzecz, która powstrzymuje Twój czas ładowania.
Zwykle jest to czas potrzebny do wykonania samego kodu PHP. Widzisz, PHP to język programowania, który jest wykonywany linia po linii. Serwer zazwyczaj tłumaczy kod PHP na instrukcje wykonywane przez maszynę, a następnie je wykonuje.
Jeśli jednak chodzi o ponowne wykonanie instrukcji, zostaną one ponownie przetłumaczone. Tak więc za każdym razem, gdy uruchamiany jest ten sam fragment kodu, należy go ponownie przetłumaczyć.
Jest to wąskie gardło wydajności, które można rozwiązać za pomocą czegoś, co nazywa się buforowaniem OpCode lub OpCachingiem. Podczas korzystania z pamięci podręcznej OpCode tworzony jest nowy rodzaj pamięci podręcznej, w której przechowywany jest wcześniej przetłumaczony kod maszynowy, dzięki czemu w przypadku konieczności ponownego wykonania wiersza kod wykonywalny maszynowo jest już dostępny.
Poniżej możesz zobaczyć schemat, jak to działa w rzeczywistości:
Buforowanie OpCode wymaga wsparcia ze strony serwera hostingowego. Jeśli Twoja witryna działa na CPanel i WHM, musisz uzyskać dostęp ROOT do WHM i włączyć PHP-FPM lub inny pakiet buforowania OpCode.
Różni się to również w PHP 7.2 i PHP 7.3 - najlepiej byłoby zapytać swoją firmę hostingową, czy jest to możliwe i jak to zrobić. Korzystamy z InMotion VPS, dzięki czemu mamy pełną kontrolę nad usługą, a nasza obecna konfiguracja wykorzystuje PHP-FPM.
Jeśli masz dostęp ROOT do WHM, przejdź do PHP MultiPHP Manager i zainstaluj pakiet z PHP-FPM.
Po włączeniu tego, będziesz mógł zobaczyć następujące informacje w informacjach PHP w Joomla. Możesz to znaleźć pod System > Informacje o systemie > Informacje o PHP
Możesz zobaczyć trafienia w pamięci podręcznej, jest to wskazówka, że PHP pobiera kody operacyjne z pamięci podręcznej, nie odtwarzając ich za każdym razem od zera.
Alternatywna opcja buforowania — LiteSpeed Server
Po raz kolejny, jeśli masz VPS, możesz mieć znacznie większą kontrolę i wycisnąć lepszą wydajność z serwera.
Jedną z zaawansowanych technik, które zastosowaliśmy, aby nasza strona była szalenie szybsza, jest użycie serwera LiteSpeed zamiast Apache lub NGINX. LiteSpeed to serwer sieciowy dla przedsiębiorstw, który zastępuje Apache.
Oznacza to, że możesz zachować całą konfigurację Apache, ale uzyskać znacznie szybszy czas wykonania.
LiteSpeed ma wbudowane buforowanie OpCache i Page jako specyficzny komponent Joomla. Jest wyposażony we własny zaawansowany komponent buforowania, który umożliwia opróżnianie tylko pojedynczych stron, więc jeśli zaktualizujesz jedną stronę, nie musisz unieważniać pełnej pamięci podręcznej.
Istnieje wiele zaawansowanych opcji buforowania, z których możesz skorzystać, wykorzystaliśmy ten serwer, aby uzyskać niesamowitą prędkość ładowania strony. Serwer LiteSpeed kosztuje 10 USD miesięcznie, ale uważamy, że jest to doskonała inwestycja.
Sprawdź teraz serwer LiteSpeed
Uwagi:
Po włączeniu Joomla cache możesz zauważyć, że „Liczba trafień” nie zwiększa się już przy każdym trafieniu. Zasadniczo, ponieważ przechowujesz kopię treści przez jakiś czas, liczba trafień będzie zwiększać się tylko za każdym razem, gdy pamięć podręczna wygaśnie. Chociaż może to brzmieć jak wada, uważamy, że powinieneś całkowicie ignorować liczbę trafień, niezależnie od tego, czy włączysz Joomla cache, czy nie. Liczba trafień jest przekrzywiona i niedokładna z różnych powodów
1. Są napompowane własnymi hitami
2. Są zawyżone przez boty, roboty i innych „nierzeczywistych” lub „duchowych” użytkowników, którzy nie są rzeczywistymi użytkownikami Twoich witryn. To tylko skrypty wykonujące swoje zadania robota. Myślenie o nich jako o rzeczywistych osobach czytających Twoje posty doprowadzi do nierealistycznego scenariusza
3. Usługi takie jak Google Analytics są znacznie dokładniejsze w obsłudze skryptów i tworzeniu szczegółowej analizy i profilu odwiedzających Twoją stronę. O wiele więcej przyniesie Ci to, jeśli użyjesz do tego skryptu, takiego jak Google Analytics. Możesz skorzystać z naszego Wtyczka Joomla Google Analytics aby to zrobić.
Jak widać na całej naszej stronie, wyłączyliśmy większość miejsc, w których pojawiają się kliknięcia Joomla, ponieważ uważamy, że są one bezużyteczne, dosłownie marnują zasoby. Jeśli chcesz wiedzieć, kto odwiedza Twoją witrynę, użyj Google Analytics. Jeśli chcesz zaimponować odwiedzającym liczbą wyświetleń stron, dodaj kilka przycisków społecznościowych. Są one znacznie bardziej skłonne do przyciągania dużego ruchu i oczywiście są dokładne.
Joomla 1.5
Aktywacja pamięci podręcznej Joomla jest również prosta. Od Globalna Konfiguracja, kliknij Konfiguracja Tab, a po prawej stronie znajduje się Ustawienia pamięci podręcznej Sekcja. Kliknij Tak w Ustawieniach pamięci podręcznej i podaj rozsądną ilość w minutach (60 minut powinno być całkiem dobre dla większości stron internetowych). Po naciśnięciu przycisku Zastosuj buforowanie zostanie włączone.
Joomla 1.0
Standardowa pamięć podręczna Joomla jest włączana z poziomu Witryna > Konfiguracja globalna > System > Ustawienia pamięci podręcznej (lub Witryna > Konfiguracja globalna > zakładka Pamięć podręczna dla Joomla 1.0) i oznacz ją jako włączoną.
Chociaż istnieją komponenty napisane do buforowania, buforowanie po wyjęciu z pudełka zapewni Twojej witrynie natychmiastowy wzrost.
Często Zadawane Pytania
Co to jest pamięć podręczna?
Pamięć podręczna to mechanizm, który przechowuje tymczasową kopię treści na lokalnym szybkim magazynie (takim jak dysk lub pamięć), dzięki czemu serwer nie musi pobierać treści z bazy danych za każdym razem, gdy użytkownik odwiedza witrynę. Dzięki temu czas ładowania witryny jest znacznie szybszy.
Jak włączyć pamięć podręczną Joomla?
Istnieją różne opcje włączenia pamięci podręcznej Joomla. Najprostszą metodą jest włączenie tego za pośrednictwem rdzenia Joomla, w konfiguracji globalnej, w sekcji System w sekcji Ustawienia pamięci podręcznej. Po prostu włącz pamięć podręczną na — buforowanie konserwatywne. Należy również włączyć wtyczkę pamięci podręcznej strony w sekcji Rozszerzenia > Wtyczki do buforowania na poziomie strony. Powinieneś również zapoznać się z tym artykułem, aby znaleźć kilka innych zaawansowanych opcji buforowania.
Jak wyczyścić pamięć podręczną Joomla?
Aby wyczyścić pamięć podręczną Joomla, po prostu przejdź do System> Wyczyść pamięć podręczną i kliknij Usuń wszystko.
Podsumowanie
Powyżej widzieliśmy różne sposoby włączenia pamięci podręcznej Joomla, zarówno od rdzenia, jak i przy użyciu zewnętrznych i zaawansowanych komponentów, aby przyspieszyć swoją witrynę. Napisz do nas i daj nam znać, jeśli coś przeoczyliśmy.
Proszę zostaw użyteczny skomentuj swoje przemyślenia, a następnie udostępnij to na swoich grupach na Facebooku, które uznają to za przydatne i wspólnie zbierzmy korzyści. Dziękuję za udostępnienie i bycie miłym!
Ujawnienie: Ta strona może zawierać linki do zewnętrznych witryn produktów, które kochamy i gorąco polecamy. Jeśli kupisz sugerowane przez nas produkty, możemy otrzymać opłatę za polecenie. Takie opłaty nie wpływają na nasze rekomendacje i nie przyjmujemy płatności za pozytywne recenzje.