Wir sind im letzten Jahr mit unserem System auf einen neuen modernen Server gezogen und haben ein Update von Typo3 4.0.x auf 4.3.x durchgeführt.
Danach mussten wir leider feststellen, dass die Startseite grottenlangsam geworden ist, alle anderen Seiten besitzen überwiegend gute Zugriffszeiten.
Wir benutzen momentan das alte Caching von Typo3.
Schalten wir aber auf "Caching Framework" um, wird das System schlagartig langsam. Die DB ist überlastet und schmiert schließlich ab.
Eigentlich gibt es auf der Startseite nur zwei angezeigte Extensions: tt_news 3.01 und gst_topcontent 1.21. Bei gst_topcontent hab ich das "$GLOBALS['TSFE']->set_no_cache();" schon in der Quelle rausgepolkt, für tt_news das Caching entsprechend konfiguriert...
Mir schwant eigentlich dennoch, das gar kein Seitencaching mehr stattfindet und alles frisch geholt wird - andereseits werden die entsprechenden Cache-Dateien angelegt...
Ich hab soweit alles durchgeschaut, sogar am Core geschraubt - alles ohne Erfolg:
Also ich weiß nicht mehr weiter, hat jemand noch'n Tipp für mich?
Hallo.
Ein interessantes Phänomen... Zur Lösung müsste zunächst einmal die Ursache genauer lokalisiert werden.
- Kannst Du durch Aktivieren/Deaktivieren eine der beiden Extensions als Ursache dingfest machen?
- gst_topcontent wurde vor 7 Jahren programmiert - könnte auch ein Ansatz sein (muss aber nichts heißen)
- Passiert auf der Startseite deutlich mehr mit Bildern als auf den sonstigen Seiten? Also kann es an der Bildverarbeitung liegen?
Viele Grüße
Julian
Hallo Julian,
auch wenn ich mich nun schon etwas in die Caching-Problematik eingelesen habe, komme ich nicht weiter.
Es ist aber in der Tat so, dass gst_topcontent mit zur Langsamkeit beiträgt. Schalte ich es aus, läuft die Seite recht flott.
Dennoch - es scheint auch dann gar kein wirksames Pagecaching stattzufinden. Die Tabelle cache_pages enthält immer nur ganz wenige Einträge (zwischen 0 und 50, und das bei ca 6000 Seiten im Projekt). Ich weiß aber nicht, ob das relevant ist.
Bilder werden so gut wie gar nicht auf der Startseite verwendet.
Sind vielleicht andere Extensions bekannt, die hier ursächlich sein könnten?
kolki schriebSind vielleicht andere Extensions bekannt, die hier ursächlich sein könnten?
Prinzipiell sind alle Extensions, die $GLOBALS['TSFE']->set_no_cache(); verwenden, böse. Such mal, ob es noch mehr davon in Deiner Installation gibt.
Habe mir gst_topcontent nochmal angeschaut. Für große Sites wie Deine dürften hier - je nach Konfiguration - mehrere Punkte die Performance stark beeinflussen:
- GetAllPages() ermittelt rekursiv alle Unterseiten. Je nach Seitenbaumstruktur dürfte die Methode mehrere Hundert Mal aufgerufen werden und Anfragen an die DB stellen.
- Die Inhaltselemente werden basierend auf einer Liste von Page-IDs abgefragt - bei 6000 Seiten umfasst die Liste im schlimmsten Fall wohl auch 6000 IDs
Soweit möglich, versuch mal die slow-queries von Deinem mysql-Server zu erfahren.
Hallo Julian,
danke für dein Bemühen. Natürlich jage ich gst_topcontent nicht gleich auf alle 6000 Seiten los, sondern frage nur einen (wenn auch großen) Teil ab. Aber als das Page Caching noch gut funktionierte wars ja auch akzeptabel.
Ich werde auf jeden Fall sicherheitshalber mal die anderen Extensions nach "$GLOBALS['TSFE']->set_no_cache()" checken. Nach den Slow-Queries werde ich fragen. Auf jeden Fall sagte mir mein Serverbetreuer, dass die Auslastung der DB bei 100% lag, als ich das Caching Framework angeknipst hatte. Wahrscheinlich sollte ich mal nach einer Alternative für gst_topcontent suchen...
Hattest du zufällig gst_topcontent mal installiert und $GLOBALS['TSFE']->set_no_cache() entfernt? Mich würde ja interessieren, ob das Problem nur bei mir auftritt. Wer kann hier vielleicht noch seine Erfahrungen mitteilen?
Außer noch tt_news gibt es bei uns keine Ext. die $GLOBALS['TSFE']->set_no_cache() verwendet. #paralyzed#
Endlich hab ich die Lösung gefunden.
Die installierte Ext. 'oc_de_loginbox' war schuld.
Diese mischt sich nebenbei extrem in das Page-Caching ein und veranlasst permanent den Typo3-Core, die Tabelle 'cache_pages' zu leeren.
Das Ergebnis dessen hatte ich bereits weiter vorne beschrieben.
Also Hände weg von oc_de_loginbox oder bei Bedarf nur mal temporär installieren.