Címlap - Blog - Joomla teljesítmény 2 - Hibakeresés
Joomla teljesítmény 2 - Hibakeresés
Írta: Dobák Péter   
2010. szeptember 22. szerda, 18:21
Folytatom a Joomla teljesítményével kapcsolatos cikkem, ezúttal számadatokkal alátámasztva.
A minap hibakeresést folytattam egy rendszeren mert túl lassan töltődött be a kezdőlap a felhasználó számára.

Természetesen egyből a teljesítményadatok vizsgálatába kezdtem a már az előző cikkemben említett Joomla beépített debug funkciójával.
(Adminisztrációs felület --> Globális beállítások --> Rendszer fül: Hibakeresés beállításai)
Nem kellett sokat várni az eredményre. A következő értékeket kaptam:
 
Application afterLoad: 0.002 seconds, 0.43 MB
Application afterInitialise: 0.079 seconds, 5.45 MB
Application afterRoute: 0.092 seconds, 6.53 MB
Application afterDispatch: 3.820 seconds, 9.27 MB
Application afterRender: 4.375 seconds, 14.90 MB
 
Az első három érték teljesen normális nincs velük semmi gond. Viszont jól látható, hogy az afterRoute és afterDispatch közt eltelt idő kritikusan sok.
 
Mit is jelent ez a különbség ?
Az afterRoute és afterDispatch közt eltelt időt egy komponens generálja, ami kapta a kérést és bíbelődik a válasszal (option=com_valami esetében a com_valami komponens)
Innentől már jócskán le van szűkítve a hiba oka.
 
(Az afterDispatch és afterRender közötti idő az amíg a komponens kimenetét a sablonba foglalja a Joomla. Az afterRender továbbá a teljes idő amíg a lap legenerálása megtörténik.)
 
Vizsgálva a debug kimenetét az adott komponensre vonatkozóan kiderült, hogy több mint 1300 (közel 1400) MySQL kérés hajtódott végre. Ez elég sok, főleg mivel több összetett kérés is van.
 
Próbáljuk ki mi történik ha a hibát okozó komponenst kikapcsoljuk:
 
Application afterLoad: 0.005 seconds, 0.43 MB
Application afterInitialise: 0.103 seconds, 5.44 MB
Application afterRoute: 0.122 seconds, 6.52 MB
Application afterDispatch: 0.444 seconds, 10.91 MB
Application afterRender: 0.612 seconds, 16.50 MB
 
Jól látható, hogy ezek az értékek azért már jobban festenének, igaz a probléma forrása nincs kijavítva viszont így már tudjuk, hogy egy komponenssel van a baj sőt egész pontosan azt is melyikkel és így ki is zártuk a hoszting szolgáltató hibáját megkímélve így annak ügyfélszolgálatát :)
 
Eredendően sokan a Joomla kódjának minőségét* és átgondolatlanságát* okolják a "megmagyarázhatatlan" lassulás okaként, viszont az esetek döntő többségében egy 3rdparty (külső fejlesztőtől származó) bővítmény okozza a galibát, kisebbségben pedig a kiszolgáló illetve a Joomla helytelen konfigurációja.

* Még mielőtt valaki félreértené nem rossz a Joomla kód minősége és át is van gondolva rendesen, hiszen egy közösség tapasztalatára épül és évek alatt fejlődött ki.