Dołącz do zespołu ekspertów! Backend lub Frontend Developer?

Sprawdź najnowsze oferty pracy naszego partnera - 8lines.io!

Analiza obciążenia i czasu generowania

Założony przez  meto.

Kilka szczegółów o moim forum:
wersja skryptu MyBB: 1.4.8
wersja bazy MySQL, Postgre: 5.0.51a
wersja używanego PHP:5.2.10
adres forum: http://pgc-cs.eu
firma hostingowa: http://xgame.pl
spis wtyczek: duzo, ale najprawdopodobniej to nie to ;)
Opis problemu:

Zacznę od tego, że chciałem sprawdzić jak się miewa obciążenie generowane przez to forum i szczerze mówiąc się zaskoczyłem porządnie. Dane debugowania do znalezienia pod adresem ( http://xgame.pl/info.html ). Aby uprzedzić propozycje/uwagi: na serwerze działa xCache i pamięci ma pod dostatkiem. MySQL to też nie problem jak widać w czasie zapytań, podobnie z obciążeniem serwera.

Próby były przeprowadzone na czystym skrypcie MyBB 1.4.8 z przekopiowanym config.php i wyniki były bardzo podobne - zużycie pamięci na poziomie 12M+ i czas 0,3s+. Dowodzi to, że problemem nie są pluginy (+były wyłączane w działającej wersji forum z podobnym skutkiem). Podobnie sprawa wyglada na różnych stylach.

Co jeszcze mogę zrobić żeby znaleźć problem? Jeśli chodzi o MyBB to nie znam tego skryptu zbyt dobrze, ale czysta instalacja używa tylko 1M i generuje się w ok. 9ms, więc nie sądzę żeby taki skok był normalny (czyżby?). Chyba że od razu coś Wam przychodzi do głowy! :)

Z góry dziękuję za pomoc.
DamYan napisał 17.07.2009, 22:56:
Wątek nam zaczyna bardziej pasować tutaj :)
(17.07.2009, 10:36)meto napisał(a): na czystym skrypcie MyBB 1.4.8 z przekopiowanym config.php i wyniki były bardzo podobne - zużycie pamięci na poziomie 12M+
Cytat:czysta instalacja używa tylko 1M
zdecyduj się
(17.07.2009, 10:45)marines napisał(a): /.../
zdecyduj się

No właśnie z tego, co zrozumiałem problemem jest to, że coś się "popitoliło", bo normalne zużycie to ok 1/2 MB w pamięci.
(17.07.2009, 10:45)marines napisał(a):
(17.07.2009, 10:36)meto napisał(a): na czystym skrypcie MyBB 1.4.8 z przekopiowanym config.php i wyniki były bardzo podobne - zużycie pamięci na poziomie 12M+
Cytat:czysta instalacja używa tylko 1M
zdecyduj się

DamYan mnie dobrze zrozumiał: czysta instalacja != czysty skrypt.

Czysta instalacja = pliki z mybb bez niczego + domyślna baza
Czysty skrypt = pliki z mybb bez niczego + baza z "wadliwego" forum.
(17.07.2009, 10:52)meto napisał(a): /.../
Czysty skrypt = pliki z mybb bez niczego + baza z "wadliwego" forum.

Czy optymalizowałeś bazę, czy nie ma w niej błędów lub "skraszowanych" tabelek? Sprawdź też na localhoście, bo być może dzieje się coś niedobrego z hostingiem.
w phpmyadminie napraw tabele w bazie, zoptymalizuj je, w ACP przebuduj cache, ewentualnie przelicz statystyki.

jeżeli to nie pomoże to spróbuj przywrócić wszystkie szablony twojego stylu do oryginalnych wersji (mając oczywiście kopię zapasową).
(17.07.2009, 10:54)DamYan napisał(a): /.../
Czy optymalizowałeś bazę, czy nie ma w niej błędów lub "skraszowanych" tabelek? Sprawdź też na localhoście, bo być może dzieje się coś niedobrego z hostingiem.
Naprawiane i optymalizowane, przebudowane (Narzędzia > Przeliczanie i Przebudowa).

Styl działa domyślny, niemodyfikowany. Przynajmniej takiego ja używam do diagnozy. Wielokrotne odświeżania nie pomaga, w sensie odbudowania cache jako, że nie jest to domyślny theme.

Generalnie to nic nie pomogło z powyższego.

Na hostingu nic się nie dzieje (wiem, bo jestem adminem ;) ) i działają inne, większe fora bez problemowo - rząd wielkości szybciej, z tym że z mybb to jest największe obecnie, ale czyste instalacje działają sprawnie.
Dziwna sprawa. Nasze forum, które wisi już trochę w sieci ;), ma sporo modyfikacji i coraz bardziej rosnącą bazę:

Cytat:Generated in 0.1261890 seconds (79.54% PHP / 20.46% MySQL)
SQL Queries: 35 / Global Parsing Time: 0.0426588 / Memory Usage: 2,25 MB

Jak duża jest ta baza?
(17.07.2009, 11:18)DamYan napisał(a): ...
Jak duża jest ta baza?
90MB z lekkim hakiem z czego 6MB to shout... Ale same zapytania to nie problem statystycznie na 300ms generowania zapytania MySQL to nie wiecej niż 20ms, a nawet w większości przypadków nie przekraczają 10ms.
Kilka szczegółów o moim forum:
wersja skryptu MyBB: 1.4.8
wersja bazy MySQL, : 5.1.34
wersja używanego PHP:5.2.9
adres forum: http://hajlo.com
Cache: xcache

To oblukajcie moje statystyki...
Mybb zawsze kaszani się po konwersjach ;/

http://testy.hajlo.com/statystyki.htm
Ale przecież to zależy także w dużej mierze od konfiguracji serwera.
Generated in 0.0765121 seconds (95.27% PHP / 4.73% MySQL)
SQL Queries: 9 / Global Parsing Time: 0.0461519 / Memory Usage: 5.25 MB
Świeżo co zainstalowane forum ( http://alleprawda.pl/forum/ ) znikoma liczba postów i userów.

I w zależności jak PHP/MySQL jest skonfigurowane (ile MB pamięci dopuszcza PHP, oraz ile MySQL może cache'ować wartości) te wartości będą u każdego różne.
Chyba, że zaczniemy porównywać te parametry na jednej i tej samej maszynie!
(17.07.2009, 10:36)meto napisał(a): na czystym skrypcie MyBB 1.4.8 z przekopiowanym config.php i wyniki były bardzo podobne - zużycie pamięci na poziomie 12M+
Cytat:czysta instalacja używa tylko 1M

(17.07.2009, 10:52)meto napisał(a): Czysta instalacja = pliki z mybb bez niczego + domyślna baza
Czysty skrypt = pliki z mybb bez niczego + baza z "wadliwego" forum.

(17.07.2009, 13:25)BlueMan napisał(a): Chyba, że zaczniemy porównywać te parametry na jednej i tej samej maszynie!

przecież od początku porównuje :o
Ale inny zaczęli się "chwalić" ile ich forum zużywa... więc to po prostu nie ma odniesienia do tego do czego autor tematu dąży.
Sam również stwierdziłem że czyste forum zainstalowane na maszynie co moje forum główne zajmuje 2.5mb pamięci, a podpięte pod moją obecną bazę, już 5.5 (bez pluginów).A zawsze php dostaje w zad... Czyli dołączam się do problemu kolegi...
Dołączam się... Bo to nie pierwszy raz jak widzę taki problem. Nawet u siebie...
(17.07.2009, 13:25)BlueMan napisał(a): Ale przecież to zależy także w dużej mierze od konfiguracji serwera.
Generated in 0.0765121 seconds (95.27% PHP / 4.73% MySQL)
SQL Queries: 9 / Global Parsing Time: 0.0461519 / Memory Usage: 5.25 MB
Świeżo co zainstalowane forum ( http://alleprawda.pl/forum/ ) znikoma liczba postów i userów.

I w zależności jak PHP/MySQL jest skonfigurowane (ile MB pamięci dopuszcza PHP, oraz ile MySQL może cache'ować wartości) te wartości będą u każdego różne.
Chyba, że zaczniemy porównywać te parametry na jednej i tej samej maszynie!

Konfiguracja PHP nie ma nic do rzeczy, bo jesli przekroczysz limit pamięci PHP to skrypt będzie przerwany i dziękujemy... MySQL jeśli ma włączony cache to rzadko kiedy jest wąskim gardłem przy dobrze zoptymalizowanych zapytaniach i index'ach, więc generalnie wyniki powinny być porównywalne.

Samo zużycie pamięci zależy od skryptu, rozmiar procesów php tutaj jest nieistotny i nieuwzględniany (mowa o dodatkach typu pspell, xcache, apc etc).

Update
Znalazłem źródło błędu - w index.php i podejrzewam, że wszędzie najwięcej zajmuje zmienna $forumpermissions i po zakomentowaniu jej skrypt forum ładuje się 20-40ms i zużycie pamięci na poziomie 4-6M jest akceptowalne. Może też być tak dlatego że część postów się nie wyświetla ale fakt jest taki, że sama zmienna powoduje zużycie pamięci o ponad 5M. Jest powód jak go rozwiązać?

Update2
Wykasowałem na kopii wszystkie grupy, zostawiłem domyślne, więc problem jest gdzieś w tym do czego te grupy są wykorzystywane raczej, choć użycie pamięci spadło do 11M



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

1 gości