Wer kann mir mein Performance verbessern?

schullz
Beiträge: 3
Registriert: Do 31. Jan 2008, 15:03
Kontaktdaten:

Wer kann mir mein Performance verbessern?

Beitrag 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
delinquent
Beiträge: 184
Registriert: Fr 17. Aug 2007, 12:15
Kontaktdaten:

Beitrag 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
MRM
Beiträge: 23
Registriert: Mo 3. Mär 2008, 15:51
Kontaktdaten:

Beitrag 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?
delinquent
Beiträge: 184
Registriert: Fr 17. Aug 2007, 12:15
Kontaktdaten:

Beitrag 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.
xmurrix
Beiträge: 3215
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Hat sich bedankt: 4 Mal
Danksagung erhalten: 16 Mal
Kontaktdaten:

Beitrag 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
Zuletzt geändert von xmurrix am Mi 12. Mär 2008, 21:54, insgesamt 1-mal geändert.
MRM
Beiträge: 23
Registriert: Mo 3. Mär 2008, 15:51
Kontaktdaten:

Beitrag 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.
xmurrix
Beiträge: 3215
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Hat sich bedankt: 4 Mal
Danksagung erhalten: 16 Mal
Kontaktdaten:

Beitrag von xmurrix »

Hallo MRM,

sorry, habe dein Post mit dem von schulz verwechselt, werde es noch korrigieren...
MRM hat geschrieben: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
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
GaMbIt_
Beiträge: 674
Registriert: Do 16. Mär 2006, 16:17
Kontaktdaten:

Beitrag 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...
MRM
Beiträge: 23
Registriert: Mo 3. Mär 2008, 15:51
Kontaktdaten:

Beitrag 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.
GaMbIt_
Beiträge: 674
Registriert: Do 16. Mär 2006, 16:17
Kontaktdaten:

Beitrag von GaMbIt_ »

Du Hast doch oben von 20 - 30 Sekunden geredet... oder hab ich da was überlesen ??
MRM
Beiträge: 23
Registriert: Mo 3. Mär 2008, 15:51
Kontaktdaten:

Beitrag 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).
GaMbIt_
Beiträge: 674
Registriert: Do 16. Mär 2006, 16:17
Kontaktdaten:

Beitrag von GaMbIt_ »

Ok...

Möglicherweise liegen irgendwo noch verdeckte Würmer rum die das System ausbremsen... einer ist sicher der IIS :)
xmurrix
Beiträge: 3215
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Hat sich bedankt: 4 Mal
Danksagung erhalten: 16 Mal
Kontaktdaten:

Beitrag 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
tinof
Beiträge: 197
Registriert: Mi 24. Jan 2007, 20:38
Wohnort: Kirchberg / Sa.
Kontaktdaten:

Beitrag 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')
Für die Freizeit : www.hobbybrauer.de
i-fekt
Beiträge: 1520
Registriert: Mo 3. Jan 2005, 02:15
Wohnort: Chemnitz
Kontaktdaten:

Beitrag von i-fekt »

Auf ein CMS umsteigen, das echtes Caching anbietet.
Gruss,
Michael

"Keep on riding this Bike!" (Jackson Mulham)
Gesperrt