[TYPO3-UG Dutch] site traag, hoe debuggen?

Wiel, J.A.M van de j.a.m.v.d.wiel at tue.nl
Sat Mar 1 00:07:00 CET 2008


Hoi Bart,
Traagheid kan in vanalles zitten. Je templates zijn waarschijnlijk de grootste boosdoener omdat die uiteindelijk de php-functies in de core en in extensies aanroepen. Kijk eerst maar eens wat daar mogelijk mis zit (conditions die moeilijk te evalueren zijn? Caching? Onnodige USER_INT-objecten? Pagina's op 'no-cache' gezet? Ordinaire typfouten?). Gebruik daarvoor de template-analyzer in de Template-module. In de install tool kun je verder veel debugging aanzetten. De output daarvan kun je beperken door je eigen IP-adres op te geven. Andere bezoekers zien jouw debugging-output niet terwijl jij wel aan de performance kunt werken. Als je bij 'All configuration' kijkt, wijst het eigenlijk zichzelf.

Andere factoren op een drukke site kunnen zitten in de afstelling van de http-server en de mysql-server en de onderlinge verhouding tussen die twee. Beide kennen een beperking t.a.v. het aantal gelijktijdige connecties dat ze afhandelen. Komen er teveel 'klanten' tegelijk, dan moeten ze achter in de rij aansluiten terwijl dat misschien gezien de daadwerkelijk server-load helemaal niet nodig is. Het installeren van eaccelerator op je server scheelt bovendien aanzienlijk bij het uitvoeren van PHP-code (kan in mijn ervaring tot een factor 10 verschil maken).

Tot slot is het in TypoScript mogelijk om objecten 'by reference' aan te roepen in plaats van te kopieren. Het levert in sommige gevallen enorme performance-winsten op. Er is een document genaamd 'typoscript in depth syntax study' (of iets dergelijks, zie typo3.org->Documentation), waar de operator '=<' in staat uitgelegd. Kijk daar voor details. Kort en goed komt het erop neer dat je, wanneer je een element definieert in Typoscript als volgt:

element.nieuwsblokje < plugin.tt_news

..en je gebruikt dat element vervolgens in een hypothetisch geval op drie plaatsen:

page.10 < elements.nieuwsblokje
page.20 < elements.nieuwsblokje
page.30 < elements.nieuwsblokje

..je de hele template-structuur die je eerst al uit plugin.tt_news gehaald hebt minstens 3 keer onnodig kopieert (4x als je aan plugin.tt_news zelf al voldoende zou hebben). Dus je hebt het origineel (plugin.tt_news), je kopie (elements.nieuwsblokje) en nog eens 3 exemplaren onder page.xx. Dat kun je terugbrengen van 5 tot 2 exemplaren door in page.xx te verwijzen (call by reference) naar elements.nieuwsblokje. In plaats van '<' maak je er '=<' van. TYPO3 bouwt dan 1x elements.nieuwsblokje op en gebruikt het resultaat drie keer in page.xx. Gebruik je alleen '<' dan worden page.10, page.20 en page.30 nog eens helemaal opnieuw doorlopen volgens een recept dat eigenlijk al helemaal vastligt in elements.nieuwsblokje. Zonde!

Veel meer dan dit soort algemene tips kan ik je niet geven omdat ik niet weet hoe je site in elkaar zit, hoe je hosting-omgeving eruit ziet en wat het bezoekpatroon is.

Groeten van een TU-collega uit Eindhoven! ;-)

Bas

-----Original Message-----
From: typo3-ug-dutch-bounces at lists.netfielders.de on behalf of Bart Boeschen Hospers
Sent: Fri 2/29/2008 21:43
To: typo3-ug-dutch at lists.netfielders.de
Subject: [TYPO3-UG Dutch]  site traag, hoe debuggen?
 
Een van de sites die ik onderhoud (www.concept.utwente.nl) is gigantisch 
graag. Soms met parstijden van 10+ seconden.
Is er een goede en makkelijke manier om dit te gaan 
debuggen/onderzoeken? Dus dat ik niet de complete site eerst down hoef 
te gooien.

Daarnaast heb ik het idee dat laden van (al) gecache-de pagina's vrij 
langzaam is, dit zou naar mijn idee sowieso niet lang moeten/mogen duren.

Een andere site die op dezelfde server draait (www.snt.utwente.nl) is 
voelt bij lange na niet zo traag aan, dus het zou an sich niet aan de 
server moeten liggen.

Groeten
Bart
_______________________________________________
TYPO3-UG-dutch mailing list
TYPO3-UG-dutch at lists.netfielders.de
http://lists.netfielders.de/cgi-bin/mailman/listinfo/typo3-ug-dutch



More information about the TYPO3-UG-dutch mailing list