Sprawdź prawdziwe obciążenie MyBB - poprawka

Założony przez Łukasz Tkacz.

Jako że tworzę dodatki do MyBB i wiem, że czasami niektóre problemy trzeba rozwiązywać nieco na około, zdaję sobie sprawę z tego, czego forum MyBB wam otwarcie nie mówi. Nie wiem z czego to wynika, ale autorzy skryptu tak umieścili ostatni uchwyt dla pluginów, że to co one robią nie jest widoczne w statystykach i danych debugowania.

Dla osób zainteresowanych obciążeniem ich forów może to być ważne - skrypt nie pokazuje ani prawdziwego czasu, ani użytej pamięci, ani wykonanych zapytań, no chyba że nie używacie żadnych dodatków.

Można jednak wykonać niewielką zmianę, aby dane te były widoczne. Niczym to nie grozi i jest bardzo proste. Edytujemy plik inc/functions.php

1 Edycja functions.php



Szukamy:
$totaltime format_time_duration($maintimer->stop());
$contents $plugins->run_hooks("pre_output_page"$contents); 

zamieniamy na:
$contents $plugins->run_hooks("pre_output_page"$contents);
$totaltime format_time_duration($maintimer->stop()); 

i to już wszystko.
Po tej prostej operacji statystyki w stopce forum będą pokazywać faktyczne dane, podobnie strony z rozpiską zapytań do bazy.
Dlaczego jest to istotne? Bo ten uchwyt wykorzystywany w zasadzie na koniec generowania forum jest bardzo przydatny w wielu sytuacjach i sporo pluginów na pewno się do niego odwołuje. Im więcej, tym bardziej zaniżone statystyki obciążenia obserwujecie bez tego zabiegu.

Mini-poprawkę, sugestię co do zmiany kolejności wyślę do autorów skryptu, może zechcą przesunąć kod nieco wyżej, aby administratorzy nie musieli robić tego samodzielnie.
Mnie tylko zastanawia to, czy zrobili to z premedytacją, czy po prostu przez nieuwagę. Ciekawe jak zareagują na Twoje zgłoszenie.
Łukasz na developera MyBB! Dzięki za poprawkę. Zastanawiam się dlaczego w ogóle musiało do niej dojść? :)
Żadna sprawa nie jest przegrana dopóki choć jeden szaleniec o nią walczy. Tylko wariaci są coś warci.
Zastanawiałem się nad jakimś sensownym powodem umieszczenia tego właśnie w ten sposób... no ale nie znalazłem. Albo nieuwaga, albo teoria spiskowa: wiedzieli że z tego hooka trzeba korzystać w wielu wypadkach i w ten sposób "zatuszowali" dodatkowy narzut ze strony pluginów :D
No ale to raczej mało prawdopodobny scenariusz ;)
Hmmmm, dodałem powyższe zmiany i nie zauważyłem aż tak dużej różnicy obciążenia, prócz tego, że użycie pamięci wzrosło o około 500kb.

Przed modyfikacją:
Cytat:Generated in 0.4945259 seconds (93.33% PHP / 6.67% MySQL)
SQL Queries: 46 / Global Parsing Time: 0.0853140 / Memory Usage: 18.5 MB
PHP version: 5.3.25 / Server Load: 2.12 / GZip Compression: Enabled
Po modyfikacji:
Cytat:Generated in 0.4718070 seconds (94.43% PHP / 5.57% MySQL)
SQL Queries: 50 / Global Parsing Time: 0.0518832 / Memory Usage: 19 MB
PHP version: 5.3.25 / Server Load: 1.68 / GZip Compression: Enabled
No i cztery zapytania więcej, które idą właśnie z tego uchwytu w pluginach ;-)
** U mnie zapytania zmieniają się same w zależności od cache.
Tak średnio 40-60
Google SEO i prostats to główne motory zapytań :D
Zastanawia mnie tak niskie użycie SQL (94.43% PHP / 5.57% MySQL), a php prawie zawsze na 90%.
Od czego to zależy ? Od dobrej pracy hosta ?
(13.06.2013, 09:34)gloverek napisał(a): Zastanawia mnie tak niskie użycie SQL (94.43% PHP / 5.57% MySQL), a php prawie zawsze na 90%.
Od czego to zależy ? Od dobrej pracy hosta ?

Od gazilliona rzeczy. Narzut języka, narzut aplikacji, silnik bazy danych, wykonywane zapytania, opóźnienia w komunikacji z bazą, wydajność operacji dyskowych, pamięć, itp itd.

Jak chcesz to przenieś bazę na jakiś serwer z Pentiumem 166. Wtedy baza zwolni i proporcje się wyrównają. ;)
to nie jest "użycie" a bodajże rozkład czasu potrzebnego na wygenerowanie strony.
(13.06.2013, 09:34)gloverek napisał(a): ** U mnie zapytania zmieniają się same w zależności od cache.
Tak średnio 40-60
Google SEO i prostats to główne motory zapytań :D
Zastanawia mnie tak niskie użycie SQL (94.43% PHP / 5.57% MySQL), a php prawie zawsze na 90%.
Od czego to zależy ? Od dobrej pracy hosta ?
Z tego co pamiętam te dane nie oddają faktycznego stanu mysql i php.

Swoją drogą, 50 zapytań na strone, szok.
Serwery CS REKSIO:))
W wersji 1.8.4 w pliku functions.php nie ma żadnej z wymienionej linijki :O
Poradnik jest pod wersje 16
ale czy to znaczy że poprawka została wprowadzona w życie?
Jeśli nie to co należy zmienić pod 1.8.4?
Sprawdziłem i niestety nie - nie wiedzieć czemu nadal część operacji jest "ukrywana" i statystyki są przekłamane, przynajmniej jeżeli chodzi o czas generowania, bo zapytania powinno już pokazywać wszystkie. W MyBB 1.8 wystarczy jednak bardzo drobna zmiana w tym samym pliku (inc/functions.php). Wystarczy zamienić:

$totaltime format_time_duration($maintimer->stop());
$contents $plugins->run_hooks("pre_output_page"$contents); 

na:

$contents $plugins->run_hooks("pre_output_page"$contents);
$totaltime format_time_duration($maintimer->stop()); 

Zaktualizowałem pierwszy post.
Mam pytanko, czy wersja mybb 1.8.5 i 1.8.6 mają ten sam mankament?
Forum: https://odjechani.com.pl Konto testowe - Login:Mybboard.pl Hasło:mybboard Posiadam link do Mybboard.pl w stopce. 



Użytkownicy przeglądający ten wątek:

1 gości