Seite 1 von 2
Wer kann mir mein Performance verbessern?
Verfasst: Mi 13. Feb 2008, 12:47
von schullz
Hallo zusammen,
meine Webseite funktioniert gut mit Contenido, nur leider ist sie durch das CMS dermaßen langsam geworden, dass ich mich ärgere. Kennt jemand die Tricks, um Contenido schneller zu machen? Ich habe gehört, die Cronjobs könnten was damit zu tun haben...?
Mit der Bitte um schnelle Hilfe - vielen herzlichen Dank,
Axel
Verfasst: Mi 13. Feb 2008, 13:18
von delinquent
Wenn sich Deine Seiten nicht minütlich ändern, dann ist es das einfachste, den Browser Deine Seite cachen zu lassen.
Wenn Du Apache benutzt und mod_headers installiert ist, dann kannst Du das beispielsweise in der .htaccess-Datei aktivieren (AllowOverride All vorrausgesetzt):
Code: Alles auswählen
<IfModule mod_headers.c>
Header set Cache-control "public, max-age=3600"
Header set Pragma "public"
</IfModule>
Dann kannst Du bspw. mit
WebSniffer nachsehen, ob die Header auch gesetzt werden.
Dann kannst Du, wenn Du Serveradministrator bist, eine Ausgabekompression durch den Webserver einrichten und Du sparst schon einmal Bandbreite.
Das sind erst einmal Dinge, die nicht direkt Contenido betreffen.
Gruß,
Manuel
Verfasst: Di 11. Mär 2008, 17:03
von MRM
Habe mein Anliegen zwar schon in einem
anderen Thread gepostet, aber mit leider wenig Resonanz.
Also:
Ich habe die letzte Version von Contenido auf dem Webserver meiner Uni installiert, dies ist ein IIS-Server mit 500 MHz CPU (die größtenteils echt am Anschlag läuft, wie mir der Sysadmin gezeigt hat).
Frontend und Backend sind in etwa gleich langsam.
(BTW: Sogar die Weiterleitung zu externen Seiten ist langsam)
Mir wurde schon empfohlen die Cronjobs zu löschen, aber das hat nichts gebracht, es ist genau so lahm wie zuvor. Welche davon sind wirklich essentiell? So Dinge wie Statistik oder "Artikeltimer" brauchen wir nicht.
Wenn Du Apache benutzt und mod_headers installiert ist,
Verstehe ich das richtig, dass das keine Datei im Ordner von Contenido ist?
In die Log-Datei hab ich noch nicht geschaut, werde das aber mal machen. (komme von zu Hause natürlich nicht da dran)
Habe bei meiner Suche auch oft Threads mit Mod-Rewrite oder so gefunden, gilt das auch noch für die "aktuelle" Contenido-Version?
Verfasst: Di 11. Mär 2008, 20:58
von delinquent
MRM hat geschrieben:Mir wurde schon empfohlen die Cronjobs zu löschen, aber das hat nichts gebracht, es ist genau so lahm wie zuvor. Welche davon sind wirklich essentiell? So Dinge wie Statistik oder "Artikeltimer" brauchen wir nicht.
Ich weiß leider nicht auswendig, wie das implementiert ist aber ich denke nicht, dass man solche Dinge, wie Statistik o.ä. einfach abschalten kann, da wirst Du wahrscheinlich selbst Hand anlegen müssen (Korrigiere mich jemand, falls ich mich irre).
MRM hat geschrieben:
Wenn Du Apache benutzt und mod_headers installiert ist,
Verstehe ich das richtig, dass das keine Datei im Ordner von Contenido ist?
Das verstehst Du richtig. [
http://httpd.apache.org/docs/2.2/mod/mod_headers.html] Ist ein Apache-Modul. Wie das im IIS aussieht weiß ich jedoch nicht... Sorry.
Verfasst: Di 11. Mär 2008, 23:21
von xmurrix
Hallo MRM,
du schreibst, dass schon ein Redirect sehr lange dauert, daher vermute ich, dass der Flaschenhals an der Datenbank liegt, wobei 500 MHz in meinen Augen auch nicht unbedingt ausreichend sind.
Bis ein Redirect stattfindet oder Contenido der Inhalt einer Seite ausgibt, werden in Contenido einige Queries an die DB abgesetzt. Bei erstmaligem Aufruf sind es ca. 30, ist die Session gesetzt, sind es ca. 20.
Ich würde zuerst versuchen, an der DB Optimierungen durchzuführen. Eventuell könnte man einiges rausholen, wenn man den MySQL Query-Cache aktiviert oder den Wert hochschraubt.
http://dev.mysql.com/doc/refman/5.0/en/query-cache.html
Sollte das keine zufriedenstellenden Resultate liefern, solltest du dir als Alternative vielleicht das Caching von Inhalten oder Seiten überlegen. Da gibt es folgende 2 Lösungen dafür:
concache zum Cachen der Frontendausgabe
Ist eine Erweiterung von mir und cached die komplette Ausgabe.
Caching - Leistungsverbesserung bis zu Faktor 30
Eine Lösung von kummer, mit dem das Caching auf Modulebene arbeitet.
Mit beiden Möglichkeiten kann die Anzahl der DB Queries erheblich minimiert werden, was sich auf die Performance auswirkt. Wenn aber der DB Server oder die Hardware zu langsam ist, wird das auch nichts bringen.
Gruß
xmurrix
Verfasst: Mi 12. Mär 2008, 12:13
von MRM
Danke für die Tipps!
Habe jetzt mal deinen Concache eingebaut, aber ich habe das Gefühl, dass er noch nicht cached, da der Header und die Navi irgendwie immer später geladen werden:
http://www.biologie.uni-osnabrueck.de/P ... ontent.php
BTW: Error.log ist leer!
Den Tipp mit MySQL muss ich an den Sysadmin weiterreichen und der hat ja auch noch andere Sachen zu tun, kann also ein bisschen dauern.
Verfasst: Mi 12. Mär 2008, 21:54
von xmurrix
Hallo MRM,
sorry, habe dein Post mit dem von schulz verwechselt, werde es noch korrigieren...
War soeben auf deiner Seite, ob das Caching aktiv ist, kann ich dir nicht sagen. Wenn du die Erweiterung richtig integriert hast - leider gibt es dafür keinen Installer, da ist Handarbeit angesagt - dann sollte es eigentlich funktionieren.
Schau dir mal folgende Punkte an, falls du die Defaulteinstellungen nicht geändert hast:
Code: Alles auswählen
/**
* in /cms/includes/concache.php
*/
// aktivieren des caching
$cfgConCache['enable'] = true;
// Cacheverzeichnis, hier z. B. /cms/cache/ (Wichtig: PHP braucht hier Schreibrechte)
$cfgConCache['cachedir'] = $cfgClient[$client]['path']['frontend'].'cache/';
// Unterordner in /cms/cache/, also /cms/cache/content/
// Schau mal nach, ob da Dateien enthalten sind.
$cfgConCache['cachegroup'] = 'content';
Wenn alles passt und trotzdem keine Fehler in der errorlog.txt stehen, könnte die Integration des Caching in der front_content.php fehlgeschlagen sein.
Gruß
xmurrix
Verfasst: Do 13. Mär 2008, 05:46
von GaMbIt_
Nur mal so vorsichtig gefragt...
Die Internetanbindung ist ausreichend schnell ??
EDIT: Nachtrag...
Die Seite an sich ist ausreichend schnell für 500 MHz mit einem IIS..
Optimieren kann man da sicher noch beim Routing...
Gut.. der Server ist nicht pingbar... und die Route hört wohl beim Gateway auf...
Andererseits läuft auf dem iis.biologie.uni-osnabrueck.de noch so einiges an anderen Anwendungen... unter anderem ein paar Websites die ebenfalls recht lahm rüberkommen...
also zumindest ist bei mir kein merkbarer Unterschied zwischen der Contenido Seite der Pflanzenphysiologie und z.B. der Website des Fachbereichs Biologie/Chemie unter
http://www.biologie.uni-osnabrueck.de/Fachbereich/ zu erkennen...
Verfasst: Do 13. Mär 2008, 10:40
von MRM
könnte die Integration des Caching in der front_content.php fehlgeschlagen sein.
Ich habe die front_content.php geändert, die im Ordner \external\frontend\
liegt, denn in der im ordner \cms\ habe ich nicht die Zeilen finden können, zwischen denen ich deinen Code einfügen muss.
Schau dir mal folgende Punkte an, falls du die Defaulteinstellungen nicht geändert hast:
Werde ich morgen machen, geändert habe ich da nichts.
also zumindest ist bei mir kein merkbarer Unterschied zwischen der Contenido Seite der Pflanzenphysiologie und z.B. der Website des Fachbereichs Biologie/Chemie
Hmm, bei mir braucht die Seite der PP schon min. 5 Sekunden bevor man überhaupt was sieht, die anderen Seiten brauchen so ca. 3 s.
Aber ich habe hier zu Hause auch "nur" DSL2000.
Verfasst: Do 13. Mär 2008, 16:47
von GaMbIt_
Du Hast doch oben von 20 - 30 Sekunden geredet... oder hab ich da was überlesen ??
Verfasst: Do 13. Mär 2008, 17:40
von MRM
GaMbIt_ hat geschrieben:Du Hast doch oben von 20 - 30 Sekunden geredet... oder hab ich da was überlesen ??
Ja, das hat sich verbessert (die Rechte stimmten nicht und daher konnten die Cronjobs nicht geschrieben werden).
Verfasst: Do 13. Mär 2008, 18:07
von GaMbIt_
Ok...
Möglicherweise liegen irgendwo noch verdeckte Würmer rum die das System ausbremsen... einer ist sicher der IIS

Verfasst: Do 13. Mär 2008, 22:19
von xmurrix
Hallo,
MRM hat geschrieben:...
Ich habe die front_content.php geändert, die im Ordner \external\frontend\
liegt, denn in der im ordner \cms\ habe ich nicht die Zeilen finden können, zwischen denen ich deinen Code einfügen muss...
die /externalfrontend/front_content.php ist die falsche Datei, die Änderungen kommen in der /cms/front_content.php an folgende Stellen:
Ab Zeile 407 oberhalb von
Code: Alles auswählen
##############################################
# BACKEND / FRONTEND EDITING
##############################################
die Zeilen
Code: Alles auswählen
// START: concache, murat purc
cInclude('frontend', 'includes/concache.php');
$oCacheHandler = new cConCacheHandler($GLOBALS['cfgConCache'], $db);
$oCacheHandler->start($iStartTime); // $iStartTime ist optional und ist die startzeit des scriptes, z. b. am anfang von fron_content.php
// END: concache
##############################################
# BACKEND / FRONTEND EDITING
##############################################
einfügen.
Dann ab ca. Zeile 912 oberhalb von
Code: Alles auswählen
/*
* configuration settings after the site is displayed.
*/
if (file_exists("config.after.php"))
{
@ include ("config.after.php");
}
die Zeilen
Code: Alles auswählen
// START: concache, murat purc
$oCacheHandler->end();
echo $oCacheHandler->getInfo();
// END: concache
/*
* configuration settings after the site is displayed.
*/
if (file_exists("config.after.php"))
{
@ include ("config.after.php");
}
einfügen.
Dann sollte es funzen...
Gruß
xmurrix
Verfasst: Fr 14. Mär 2008, 09:16
von tinof
Hallo,
ich habe heute zufällig noch einige interessante Schalter gefunden, die es vielleicht erleichtern, den Performance - Fresser besser einzugrenzen (wenn z.B. ein bestimmtes Modul bremsen sollte):
\cms\config.php:
Code: Alles auswählen
....
/* Various debugging options */
$frontend_debug["container_display"] = false;
$frontend_debug["module_display"] = false;
$frontend_debug["module_timing"] = false;
$frontend_debug["module_timing_summary"] = false;
Die letzten beiden flags auf true setzen und dann mal die Laufzeit der einzelnen Module betrachten (einfach Frontend 'laufen lassen')
Verfasst: Fr 14. Mär 2008, 09:22
von i-fekt
Auf ein CMS umsteigen, das echtes Caching anbietet.