smarty erzeugt hohe mysql-loads

ev0lst

Erfahrenes Mitglied
Hallo,

ich habe gestern einmal einen Stresstest in einem programmierten System gemacht. Ich nutze einige Smarty-Templates zum erzeugen der Seite.

Nur habe ich gemerkt, dass die load average immer sehr hoch ist und die Seite zeitweise für einige Sekunden nichts mehr macht, außer ne weiße Seite anzeigen.

Ich komme auf Smarty als Fehlerquelle, da alles soweit gut läuft, wenn das Caching aktiviert ist. Allerdings habe ich nirgendwo Werte für das Caching (IDs usw) vergeben...

Ich nutze hierbei noch das Modul ADODB für php...

Kann mir jemand vielleicht eine Idee liefern die mir hier helfen kann ohne das gesamte System umzubauen (Caching-IDs)..

Danke
 
Etwas schwer hier Hilfe zu geben, da ich schon Probleme habe zu verstehen, was genau die Ursache bzw das Problem ist ;)

Mal die Sachen die ich so verstehe

- Titel sagt "Smarty erzeugt hohe MySQL Loads"
- Smarty ist wohl Fehlerquelle, da alles gut läuft wenn Caching aktiviert
- kein Caching gewollt aktiviert
- ADODB als MYSQL DBA
- System nicht umbauen, irgendwas mit Caching-IDs


Nun zuerstmal zu Smarty:
Ich hab keine Ahnung von Smarty, aber Google sagt, das man das Caching nach dem erstellen das Smarty Objektes einschalten kann.
http://www.smarty.net/manual/de/caching.php

Dann frage ich mich, was Smarty mit MySQL Loads zu tun hat. Smarty stellt doch nur Templates dar mit Inhalten die von PHP Scripten kommen (assign). Wenn ich dich richtig verstanden habe, läuft dein Script gut, wenn bei Smarty das Caching aktiviert ist.
Bedeutet also, das dein Script in dem Fall nicht viel von der SQL DB holt und mehr oder weniger nur Smarty aktiviert und dies aus dem Cache liesst.
Im Umkehrschluss würde das für mich bedeuten, das wenn das Caching deaktiviert ist, dein Script alle Daten holen muss (SQL DB usw) und dann erst die Probleme auftreten. Ich würde daher eher den Fehler beim Script, bzw bei den MySQL Abfragen suchen, wo der der Flaschenhals ist.

Ansonsten mal debuggen mit timestamps (in Logdatei schreiben). Eventuell ist PHPUnit etwas für dich. Oder, wenn möglich schaust du mal bei den Prozessen (Linux "top") welche Prozesse im Test wirklich nach oben gehen.

Sorry, mehr kann ich im Moment nicht helfen.

Gruss und viel Erfolg!
 
Zurück