Zum Inhalt springen

Typo3 wird immer langsamer

Erstellt am 1. Dezember 2006 · 5 Antworten · letzte Antwort am 28. Oktober 2009

Tags: Frage

wolfi3300 ·

Mir fällt trotz performanter Maschine auf, das Typo3 teilweise extrem lange braucht um Seiten zu generieren. Teilweise steht der Browser viele Minuten auf der Stelle und nichts geht weiter.

Mir ist jetzt aufgefallen, dass sich im Verzeichnis typo3temp unmengen von Files ansammeln, welche mit EXTERNAL_URL beginnen und 0 Byte haben. Gestern waren es über 40.000 Files, die ich mit dem normalen rm-Kommando schon gar nicht mehr löschen konnte. Möglicherweise ist das für die Performanceprobleme schuld!?

Frage:
*)Warum generiert Typo3 hier Unmengen an Files, welche dann nicht mehr gelöscht werden?
*) Was kann man in diesem typo3temp-Verzeichnis so alles löschen? Habe gesehen, dass da auch teilweise jpgs abgelegt werden, welche, falls sie gelöscht werden dann bei mir im News-Bereich fehlen.
*) Wie verhält sich das bei euch mit diesem Verzeichnis? Bin am überlegen einen cronjob zu definieren, welcher jede Nacht das typo3temp-Verzeichnis bereinigt.

Danke,
Wolfgang

Spyker ·

hast du den T3 Cache nach der Entwicklung eingeschaltet?
Und Cached dieser auch wirklich

zu EXTERNAL_URL weiß ich auch nichts.

Zu den Fragen:
TYPO3 kopiert daten nach uploads, damit diese keiner löschen kann.
Kasper auf Auf der TYPO3 Conference ein Shell script vorgestellt mit dem sich Ordner demnächst aufräumen läßt.

Ich bin mir nicht sicher, aber so weit ich weiß liegen da nur generierte Dateien drin, die beim neuladen der Webseite neu generiert werden.

3.) sie 1^^

Beste,
Tim

reichhart ·

Hier der Patch selbst:

$ cat typo3-4.2.8-class.indexer.php.no-external_url-in-typo3temp.patch
--- typo3_src-4.2.8/typo3/sysext/indexed_search/class.indexer.php.orig 2009-07-03 20:55:30.000000000 +0200
+++ typo3_src-4.2.8/typo3/sysext/indexed_search/class.indexer.php 2009-10-14 20:11:53.000000000 +0200
@@ -918,12 +918,19 @@
if (strlen($content)) {

// Create temporary file:
- $tmpFile = t3lib_div::tempnam('EXTERNAL_URL').'.html';
+ //$tmpFile = t3lib_div::tempnam('EXTERNAL_URL').'.html';
+ // use one more variable and kick also the tempfile without '.html' ending
+ // Frank Bergmann, 2009-10-14
+ $ctempnam = t3lib_div::tempnam('EXTERNAL_URL');
+ if ($ctempnam) { // another T3 fault: never checked for FALSE
+ $tmpFile = $ctempnam . '.html'; // not unique anymore...
t3lib_div::writeFile($tmpFile, $content);

// Index that file:
$this->indexRegularDocument($externalUrl, TRUE, $tmpFile, 'html'); // Using "TRUE" for second parameter to force indexing of external URLs (mtime doesn't make sense, does it?)
unlink($tmpFile);
+ unlink($ctempnam); // remove PHP tempnam created file
+ }
}
}
}

Und auch noch ein Patch, der tausende Javascript-Dateien in typo3temp verhindern kann:

$ cat typo3-4.2.9-no-typo3temp-fill-with-javascript.patch
--- typo3_src-4.2.9/typo3/sysext/cms/tslib/media/scripts/gmenu_layers.php.orig 2009-09-28 19:58:55.000000000 +0200
+++ typo3_src-4.2.9/typo3/sysext/cms/tslib/media/scripts/gmenu_layers.php 2009-10-15 12:37:24.000000000 +0200
@@ -114,7 +114,8 @@
* @return void
*/
function extProc_init() {
- $this->WMid = trim($this->mconf['layer_menu_id'])?trim($this->mconf['layer_menu_id']).'x':substr(md5(microtime()),0,6); // NO '_' (underscore) in the ID!!! NN4 breaks!
+ //$this->WMid = trim($this->mconf['layer_menu_id'])?trim($this->mconf['layer_menu_id']).'x':substr(md5(microtime()),0,6); // NO '_' (underscore) in the ID!!! NN4 breaks!
+ $this->WMid = trim($this->mconf['layer_menu_id'])?trim($this->mconf['layer_menu_id']).'x':substr(md5('gl' . t3lib_div::getIndpEnv('TYPO3_HOST_ONLY')),0,6); // NO '_' (underscore) in the ID!!! NN4 breaks!

$GLOBALS['TSFE']->applicationData['GMENU_LAYERS']['WMid'][]=$this->WMid;
$this->WMtempStore = $GLOBALS['TSFE']->applicationData['GMENU_LAYERS']['WMid'];
--- typo3_src-4.2.9/typo3/sysext/cms/tslib/media/scripts/tmenu_layers.php.orig 2009-09-28 19:58:55.000000000 +0200
+++ typo3_src-4.2.9/typo3/sysext/cms/tslib/media/scripts/tmenu_layers.php 2009-10-15 12:37:23.000000000 +0200
@@ -114,7 +114,8 @@
* @return void
*/
function extProc_init() {
- $this->WMid = trim($this->mconf['layer_menu_id'])?trim($this->mconf['layer_menu_id']).'x':substr(md5(microtime()),0,6); // NO '_' (underscore) in the ID!!! NN4 breaks!
+ //$this->WMid = trim($this->mconf['layer_menu_id'])?trim($this->mconf['layer_menu_id']).'x':substr(md5(microtime()),0,6); // NO '_' (underscore) in the ID!!! NN4 breaks!
+ $this->WMid = trim($this->mconf['layer_menu_id'])?trim($this->mconf['layer_menu_id']).'x':substr(md5('tl' . t3lib_div::getIndpEnv('TYPO3_HOST_ONLY')),0,6); // NO '_' (underscore) in the ID!!! NN4 breaks!

$GLOBALS['TSFE']->applicationData['GMENU_LAYERS']['WMid'][]=$this->WMid;
$this->WMtempStore = $GLOBALS['TSFE']->applicationData['GMENU_LAYERS']['WMid'];

Zu Klarstellung: Das sind keine "offiziellen" Patches und Verwendung geschieht auf eigene Gefahr.

Gunah ·

*)Warum generiert Typo3 hier Unmengen an Files, welche dann nicht mehr gelöscht werden?

Das liegt daran, dass der HTTPD Benutzer ein anderer Benutzer als FTP Benutzer ist (bei mod_php oder fastcgi/cgi)

*) Was kann man in diesem typo3temp-Verzeichnis so alles löschen? Habe gesehen, dass da auch teilweise jpgs abgelegt werden, welche, falls sie gelöscht werden dann bei mir im News-Bereich fehlen.

einfach löschen und im Backend Cache leeren...

desweiteren ist bei TYPO3 ein Op-Code Cacher zu empfehlen...
eAccelerator, xCache, APC oder andere (nur einen davon nehmen ;-) ), diese gehen aber nicht bei CGI, ein Hoster der auf CGI setzt lebt eh in der Vergangenheit...