Webboard

Pełna wersja: Cache, czyli optymalizacja MyBB.
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.

1 Wstęp


Artykuł ma za zadanie bardziej przybliżyć sprawy cache w MyBB i pomóc z optymalizacją forum

MyBB posiada mechanizm odpowiadający za cachowanie zarówno styli, jak i innych plików czy części zapytań. Domyślnie jest on ustawiony na przechowywanie wszystkiego w bazie danych, za co jest "zjeżdżany" przez wielu nieobeznanych użytkowników.

O ile tylko nasz serwer jest wyposażony w odpowiedni moduł, możemy korzystać z następujących metod cache:
  • baza MySQL (domyślnie)
  • pliki (dysk)
  • eaccelerator
  • memcache

2 Zmiana sposobu cachowania


W panelu administracyjnym na próżno szukać nam jednak tej opcji, stąd cały problem. Jak więc zmienić sposób cachowania? Wystarczy po instalacji forum ściągnąć z serwera i edytować plik: inc/config.php

Szukamy fragmentu z takim oto kodem (~48 linijka):
Kod PHP:
$config['cache_store'] = 'db'

Teraz zależnie od tego jaki sposób wybierzemy, zmieniamy db na:
  • files -> cachowanie na dysku ( pliki )
  • memcache -> cachowanie poprzez dodatek memcache
  • eaccelerator -> użycie eaccelerator'a
np. w wypadku użycia dysku linia powinna wyglądać tak:
Kod PHP:
$config['cache_store'] = 'files'

3 Podsumowanie


Następnie zapisujemy tak zmodyfikowany plik i wysyłamy na serwer.
Zmiana nawet na ustawienie files daje naprawdę znakomite rezultaty: forum na którym non stop jest 10-20  osób online stało się dla serwera na koncie shared po prostu niezauważalne.
O ile pamiętam w starszych wersjach MyBB 1.6.x zmiana sposobu cache wymagała dodatkowo przebudowy pamięci podręcznej w ACP.
Ten sposób jest do mybb 1.6 czy 1.8 ?
Działa i w tej i w tej wersji.
Jeszcze dostępne są opcje xcache i apc.
Robił może ktoś test, który sposób jest najwydajniejszy jeśli chodzi o mybb?
Nie da się tego jednoznacznie określić, wszystko zależy od serwera i jego konfiguracji - czasem lepsze będzie coś, co rezyduje w pamięci RAM, czasem pliki, czyli dyskowe.
To mam kolejne pytanie jaki cache polecacie pod PHP7 ?

Ustawienie na file jest tu wystarczające ?
Jeżeli masz zainstalowany pakiet APCu, to możesz korzystać z APC.
W przeciwnym razie... i baza i pliki będą ok.
Ja używam MyBB w konfiguracji nginx + PHP 7 + OpCache.
Czy jesli moje forum stoi juz od pol roku moge zmienic z db na file? Jaki ma wplyw zmiana cache na istniejace juz szablony itd?
Możesz, gdyby były problemy, w każdej chwili możesz znów przełaczyć się na db.
Czy będzie na file lepiej czy gorzej... to już obecnie zależne jest od np. hostingu, ustawienia serwera itp. Na niektórych lepszym wyborem jest baza, na innych pliki, a na jeszcze innych dodatkowe miejsca do buforowania danych.