Co mogę zrobić, oprócz używania wtyczki pamięci podręcznej, takiej jak jotcache, aby poprawić czas odpowiedzi serwera w mojej witrynie?
Usunąłem już wszystkie nieaktywne moduły artykułów, wtyczki i komponenty. Czy mogę coś jeszcze zrobić, aby to poprawić?
Mówię o czasie, w którym klient (przeglądarka) otrzyma odpowiedź na jego żądanie . Nie czas ładowania strony.
php
cache
performance
server-response-time
hosting
web-tiki
źródło
źródło
Odpowiedzi:
Istnieje kilka kroków, które można wykonać, aby zwiększyć wydajność po stronie serwera. Pamiętaj, że niektóre z nich nie będą działać z większością udostępnianych hostów. Aby uzyskać doskonałą wydajność, zwykle potrzebujesz dokładniejszej kontroli.
Podobnie jak w przypadku każdej optymalizacji, należy zmierzyć jej wpływ na wydajność witryny. Do podstawowych optymalizacji służą narzędzia takie jak PageSpeed i YSlow (polecam wersje Firefox). Aby uzyskać bardziej dogłębne zrozumienie, będziesz musiał zmierzyć rzeczywisty czas reakcji twojego systemu na żywo w pewnym okresie czasu.
PHP
Włącz buforowanie kodów operacyjnych
Jest to prawdopodobnie jedna z największych rzeczy, które możesz zrobić, aby zwiększyć wydajność swojej witryny. Polecam użycie OpCache lub APC . Konfiguracja tych pamięci podręcznych może zostać zmodyfikowana w celu uzyskania jeszcze większej wydajności w oparciu o specyficzne potrzeby serwerów i witryn, ale sama instalacja jest już ogromnym ulepszeniem.
Zaktualizuj wersję PHP
Nowsze wersje PHP regularnie zawierają ulepszenia wydajności. Ponadto istnieje wiele przypadków, w których Joomla może użyć lepszego kodu, gdy działa na nowszej wersji PHP. Na dzień dzisiejszy nie powinieneś używać wersji PHP starszej niż PHP 5.4, jeśli zależy Ci na wydajności.
Ustawienia PHP
W starszych wersjach PHP (<= 5,3) wyłącz się
register_globals
imagic_quotes_gpc
wygrywaj za darmo. W PHP> = 5.6 zmieńalways_populate_raw_post_data
na -1.Rozszerzenia PHP
Joomla zawiera kod do obejścia brakujących rozszerzeń PHP. To zawsze będzie wolniejsze niż te rozszerzenia. Za przyzwoitą poprawy wydajności zainstalować następujące rozszerzenia:
mbstring
,zip
,ftp
Serwer internetowy
Włącz gzip
Włączenie kompresji po stronie serwera powoduje zamianę przepustowości zasobów procesora. W przypadku większości witryn jest to właściwe połączenie. Uważaj, aby kompresować tylko dane tekstowe, kompresja danych binarnych da ci hit CPU bez przewagi przepustowości. Możesz także włączyć kompresję w ustawieniach Joomla, ale lepiej, jeśli pozwolisz serwerowi sobie z tym poradzić.
Wstępnie skompresuj zasoby statyczne
Nie mówię o minifikacji (choć to też pomaga), ale możesz skonfigurować Nginx i Apache do serwera już skompresowanych zasobów, skutecznie eliminując uderzenie procesora z kompresji gzip. Punkty bonusowe: użyj Zopfli do jeszcze mniejszych plików.
Użyj FastCGI dla PHP
Dokładniej powinieneś użyć
php-fpm
. Zapobiega to uruchomieniu PHP, gdy przeglądarka żąda pliku innego niż PHP.Użyj odpowiednich nagłówków pamięci podręcznej
Użycie
Expires
nagłówka może znacznie zmniejszyć wymagane zasoby serwera. W końcu najszybsze żądanie nigdy nie zostało wykonane.Apacz
Ogólnie polecam używanie Nginx do witryn o wysokiej wydajności. Jeśli z jakiegoś powodu absolutnie potrzebujesz użyć Apache, dostaję dodatkową wskazówkę:
Wyłącz AllowOverride
Ustawienie
AllowOverride
doNone
zapobiega dużo dysków i IOJoomla
Nie używaj trybu FTP
Chociaż nie wpływa to na użytkowników czytających witrynę, spowolni niektóre operacje, takie jak instalacja rozszerzenia.
Wyłącz nieużywane rozszerzenia
Dotyczy to zwłaszcza wtyczek, wiele z nich jest uruchamianych na każde żądanie. Wyłączenie menu i komponentów jest pomocne głównie przy wyświetlaniu listy dostępnych rozszerzeń i typów menu. Poświęć również 5 minut na przejrzenie rozszerzeń dostarczonych z rdzeniem Joomla i wyłączenie tych, których nie używasz.
Wyłącz Przygotuj zawartość
Jeśli korzystasz z wielu niestandardowych modułów (
mod_custom
niestandardowych, jak napisane samodzielnie), sprawdź, czy możesz wyłączyć w nich opcję Przygotuj zawartość. Oszczędza to trochę przetwarzania.Użyj buforowania
Jeśli poważnie myślisz o wydajności, chcesz włączyć buforowanie. Szczególnie przydatny do czytania ciężkich witryn z wieloma anonimowymi użytkownikami. Zalogowani użytkownicy ominą większość pamięci podręcznej, jeśli masz ich dużo, efekt nie będzie tak duży.
Użyj alternatywnego modułu obsługi sesji
Korzystając z alternatywnego modułu obsługi sesji, możesz zwolnić bazę danych na ważniejsze rzeczy. Nie polecam pliku (myląco nazywanego Brak w ustawieniach Joomla), ponieważ spowoduje to ponowne zwiększenie IO dysku. Korzystanie z APC jest potencjalnie szybkie, ale zwiększa ryzyko utraty wszystkich danych sesji. Prawym środkiem jest Memcache. Chociaż wymaga to dodatkowego procesu, jest bardziej niezawodne niż APC i znacznie szybsze niż przechowywanie wszystkich danych w bazie danych
Uprość swoją witrynę
Czy naprawdę potrzebujesz tego przycisku na Facebooku? Co z tą uroczą ikoną, której nikt nigdy nie widzi, ponieważ jest częściowo ukryta za jakimś sztandarem? Im mniej witryna wyświetla, tym szybciej będzie. Tam, gdzie to możliwe, używaj CSS3 zamiast obrazów.
Różne
Ustaw favicon
Dzięki decyzji sięgającej wstecz do przeglądarek Internet Explorer 4.0 wysyłanie żądania do pliku wywoływanego
favicon.ico
za każdym razem, gdy użytkownik odwiedza Twoją witrynę. Jeśli go nie masz, powoduje to niepotrzebne operacje wejścia / wyjścia, ponieważ 404 odpowiedzi nie są buforowane. Podaj ikonę witryny za pomocą metatagu HTML lub dodaj plik wywoływanyfavicon.ico
do katalogu głównego. Nie chcesz favikonu? W tym miejscu umieść przezroczysty plik PNG o rozmiarze 1x1 piksela. Pamiętaj, że rozszerzenie musi nadal być.ico
.Zoptymalizuj swoje zdjęcia
To niesamowite, jaki rodzaj oszczędności można uzyskać, optymalizując obrazy, zwłaszcza pliki PNG. Istnieje wiele narzędzi dostępnych dla każdego systemu operacyjnego, osobiście używam ImageOptim, który jest dostępny dla OS X. Podstawowe obrazy Joomla są już zoptymalizowane, ale przeglądaj własne obrazy, szczególnie szablony są ważne. Możesz także sprawdzić używane rozszerzenia. Jeśli są to oprogramowanie typu open source, to dlaczego nie wysyłasz żądania ściągnięcia zawierającego nowo zoptymalizowane obrazy?
Zaawansowany
Jeśli naprawdę chcesz wyjść na całość, rozważ umieszczenie Lakieru na swojej stronie. Buforuje żądania do Twojej witryny i, jeśli to możliwe, obsługuje je z własnej pamięci podręcznej, nigdy nie uderzając w Joomla. To złożone narzędzie, ale o dużej mocy. Joomla nie skorzysta z zaawansowanych funkcji, takich jak Edge Side Includes (ESI), ale twój własny kod może.
źródło
Jedną z WIELKICH rzeczy, które możesz zrobić, aby skrócić czas reakcji witryny, jest aktualizacja ustawień modułu. Moduły niestandardowe (wykorzystujące mod_custom) mają opcję włączania / wyłączania przygotowywania treści. Umożliwia to uruchamianie wtyczek treści na treści danych w niestandardowym module. Jest potężny, gdy jest właściwie stosowany, ale dodaje dodatkowy czas renderowania do wyjścia modułu. O ile nie korzystasz z wtyczki treści w niestandardowej zawartości modułu, najlepiej ją wyłączyć. Gdy to zrobisz, zobaczysz zmniejszenie czasu renderowania modułu.
Zrzut ekranu z ustawieniem:
źródło
Zakładam, że prowadziłeś witrynę z prędkością strony Google i rzeczywiście chcesz skrócić czas odpowiedzi strony, tj. Czas potrzebny na przesłanie znaczników do przeglądarki.
Najbardziej prawdopodobnymi winowajcami są ciężkie zapytania. Włącz debugowanie i spójrz na dół strony, aby dowiedzieć się, które są najcięższe zapytania, i usuń je lub zmniejsz. Możesz także skorzystać z wolnych dzienników zapytań serwera MySQL.
Następną rzeczą, na którą możesz spojrzeć, jest buforowanie. W zależności od rodzaju witryny możesz włączyć konserwatywne lub progresywne buforowanie. Progresywnego należy używać w witrynach, które nie mają funkcji powiązanych z użytkownikiem.
źródło
Wiem, że mogą pomóc (z których większość została wymieniona):
Użyłem kombinacji wbudowanej pamięci podręcznej Joomla (lub nawet włączonej APC na serwerze) i wtyczek takich jak plugin rockbooster gzip lub rocket. Korzystam również z wtyczki CDN innej marki z kontem Amazon.
To zdecydowanie pomaga, ale musisz obserwować witrynę i wyłączyć pamięć podręczną dla składników, które mają problemy. Musiałem ominąć CiviCRM na naszej stronie, ponieważ nie grało dobrze z buforowaniem. Joomla posiada wtyczkę cachecontrol, która może to obsłużyć.
źródło
Będziesz także chciał ograniczyć liczbę lokalnych zasobów i właściwe buforowanie. Jedną rzeczą, którą możesz zrobić, to użyć wtyczek CDN. Oto dwa polecam:
„corePHP” jomCDN - https://www.corephp.com/joomla-products/jomcdn
NoNumbers CDN dla Joomla! - http://www.nonumber.nl/extensions/cdnforjoomla
Również jeśli żadne z powyższych nie wydaje się rozwiązać problemów, możesz mieć głębszy problem - być może w obrębie szablonu, samego serwera lub innych rzeczy. W takim przypadku najlepiej zatrudnić kogoś, kto wyszuka problem i rozwiąże problem.
źródło
Możesz również użyć tego kodu w pliku .htaccess:
źródło
Za pomocą Joomla stworzyłem ponad setki stron internetowych!
W większości przypadków ludzie myślą, że Joomla działa mocno na serwerze, ale zgodnie z przeprowadzonymi przeze mnie analizami najważniejszą rzeczą, aby utrzymać SZYBKOŚĆ swojej witryny, jest OPTYMALIZACJA OBRAZÓW i JS / CSS.
Nie używaj edytorów Joomla, takich jak JCE, aby po prostu zmienić rozmiar obrazu. Użyj edytorów obrazów, takich jak Photoshop lub inny edytor, aby zmienić rozmiar zdjęć do wymaganego rozmiaru!
Użyj narzędzi do kompresji JS / CSS.
Zawsze używamy narzędzi Pingdom do analizowania prędkości witryny i używamy wbudowanej funkcji T3 Framework do optymalizacji JS / CSS!
źródło
Czy usunąłeś nieużywane wtyczki? Joomla musi załadować i przetworzyć każdą opublikowaną wtyczkę pod kątem zdarzeń wywołanych w żądaniu.
Musisz zrozumieć zainstalowane rozszerzenia i ich interakcje z Joomla!
Wiele rozszerzeń instaluje wtyczki, które zarządzają aktywnością treści, systemu lub użytkownika w celu uruchomienia funkcji kodu. Niektóre z nich mogą być zbyteczne.
Wiem, że k2 instaluje wiele wtyczek, które reagują na zdarzenia związane z językiem, które nie generują rzeczywistych wyników dla witryn w jednym języku. Cofnięcie publikacji tych wtyczek może skrócić czas przetwarzania.
źródło
Popraw zasoby serwera / planu hostingowego
Być może nie odpowiedź, której szukał OP, ale warto o niej wspomnieć, na wypadek, gdyby nie było to oczywiste dla wszystkich (i nikt nie wspomniał o tym jeszcze): popraw zasoby serwera, takie jak pamięć, procesor i szybkość dysku.
Jeśli korzystasz z udostępnionego hostingu internetowego, przejście z planu „ekonomicznego” na plan „biznesowy” lub inny bardziej zaawansowany plan może poprawić zasoby serwerów dostępne w witrynie i skrócić czas reakcji serwera. Pomocne może być także przejście do firmy hostingowej lepszej jakości (np. Z mniej zatłoczonymi współdzielonymi serwerami hostingowymi).
Lepszy plan hostingowy może również dać ci dostęp do ulepszeń wydajności, które nie są zawarte w podstawowym planie hostingowym. Na przykład plany hostingowe „GrowBig” i „GoGeek” SiteGround obejmują dynamiczną pamięć podręczną, która znacznie skraca czas odpowiedzi serwera. Opcja dynamicznej pamięci podręcznej nie jest dostępna w planie „Uruchamianie”.
źródło