Home / Forum / Performance eZ Publish

Performance eZ Publish

Um Zugang zu den Foren zu erhalten, müssen Sie angemeldet sein

Autor Nachricht

Ronny P.

Registriert seit: 24.06.2008

Beiträge: 20

Dienstag, 18. August 2009 14:34:09

Die ez Publish Version 4.0.0 läuft auf einem Webserver (3.0GHz mit 1GB RAM).
Es wird der Apache 2.2.4 mit PHP 5.2.3 und MySQL 5.0.45 verwendet (XAMPP Version 1.6.3a).

Die Performance lässt leider zu wünschen übrig, Seiten werden langsam aufgebaut.
Pro Zugriff liegt die Systemauslastung am Server bei ca. 50%, bei zwei gleichzeitigen Zugriffen schlußfolgernd bei ca. 100%.
Der Apache Prozess verursacht demnach eine zu hohe CPU-Auslastung, ca. 50MB Speicher werden reserviert.

Da ich leider keine weiteren Kenntnisse vom Apache Webserver besitze, würde ich gern wissen, welche Optimierungsoptionen es speziell für eZ Publish gibt bzw. welche Einstellungen allgemein unbedingt gesetzt sein sollten.

Felix Woldt

Bild Felix Woldt

Registriert seit: 31.01.2006

Beiträge: 353

Dienstag, 18. August 2009 15:08:46

Hallo,

ist ein php accelerator installiert z.B. APC, EACCELEATOR oder XCACHE?

Ist der Contentcache + Viewcache vom ez eingeschaltet?

Stimmen die Schreibrechte auf ezroot/var ? ( der webserver muss dort schreiben können )

Am Besten den ez debug mal einschalten und auf error messages schauen.

Gruß Felix

http://www.jac-systeme.de - Individuelle WEB-Lösungen
--
http://www.CJW-Network.com/de - Developers united in eZ Publish
http://projects.ez.no/cjw_newsletter - eZ Publish Newsletter Lösung

Ronny P.

Registriert seit: 24.06.2008

Beiträge: 20

Dienstag, 18. August 2009 15:30:07

Danke für die Tipps!

Content-Cache und View-Cache waren bereits aktiviert.
Schreibrechte sind ebenfalls vorhanden und das Log-Files enthält keine Fehlermeldungen.

Habe jetzt in der php.ini den zendoptimizer deaktiviert und den eaccelerator aktiviert.

Dadurch konnte ich eine leichte Verbesserung der Performance feststellen, die Auslastung des Servers hat sich dadurch aber nicht (kaum) verbessert.

Felix Woldt

Bild Felix Woldt

Registriert seit: 31.01.2006

Beiträge: 353

Dienstag, 18. August 2009 15:38:36

nur so als Anhaltspunkt

Debug output eingeschaltet um timing zu sehen.

Wenn ez publish gut konfiguriert ist + webserver dann sollte eine voll gecachte ez seite 0,05s - 0.3s benötigen (ca werte)

Im debug output sieht man sehr schön die zeiten, und was so lange braucht.

Der mysql server wird auch stark belastet ( aber noch nicht so sehr bei 2 gleichzeitigen requests ) evtl. den mysql cache erhöhen

Gruß Felix

http://www.jac-systeme.de - Individuelle WEB-Lösungen
--
http://www.CJW-Network.com/de - Developers united in eZ Publish
http://projects.ez.no/cjw_newsletter - eZ Publish Newsletter Lösung

Ronny P.

Registriert seit: 24.06.2008

Beiträge: 20

Dienstag, 18. August 2009 15:57:13

Wo muss ich den MySQL-Cache anpassen?

Der Aufbau einer vollgecachten Seiten braucht zwischen 0,3 und 0,5 Sekunden.
Über 50% der Zeit werden von ini_load beansprucht.
10% für mysql_queries und 10% für template_cache.

Mit dem Firefox-Add-On Life-of-Request-Info seh ich, dass bsp. für den Aufbau der Startseite (Intranet-Projekt) 380KB (26 Datenbank-Anfragen) angefordert werden.
Der Aufbau der Startseite dauert voll gecacht 0,4 Sekunden.

Felix Woldt

Bild Felix Woldt

Registriert seit: 31.01.2006

Beiträge: 353

Dienstag, 18. August 2009 16:17:25

Hier mal ein wert von einer gecachten seite bei mir lokal

Accumulator	 Elapsed	 Percent	 Count	 Average
ini_load				
Load cache	0.1176 sec	35.1491%	15	0.0078 sec
FindInputFiles	0.1069 sec	31.9448%	15	0.0071 sec
Mysql Total				
Mysql_queries	0.0034 sec	1.0078%	9	0.0004 sec
Looping result	0.0005 sec	0.1518%	7	0.0001 sec
TS translator				
TS init	0.0088 sec	2.6230%	2	0.0044 sec
TS cache load	0.0023 sec	0.6763%	2	0.0011 sec
TS context load	0.0010 sec	0.3083%	2	0.0005 sec
Template Total	0.0762 sec	22.8%	3	0.0254 sec
Template load	0.0355 sec	10.6034%	3	0.0118 sec
Template processing	0.0401 sec	11.9680%	3	0.0134 sec
override				
Cache load	0.0295 sec	8.8016%	3	0.0098 sec
cjw_interrelation				
operator_cjw_interrelation_debug	0.0594 sec	17.7492%	1	0.0594 sec
General				
String conversion	0.0001 sec	0.0281%	2	0.0000 sec
dbfile	0.0003 sec	0.0929%	4	0.0001 sec
Total script time:	0.3346 sec	


Ich tippe auf den dateisystemzugriff, das dieser zu langsam ist.

http://www.jac-systeme.de - Individuelle WEB-Lösungen
--
http://www.CJW-Network.com/de - Developers united in eZ Publish
http://projects.ez.no/cjw_newsletter - eZ Publish Newsletter Lösung

Ronny P.

Registriert seit: 24.06.2008

Beiträge: 20

Dienstag, 18. August 2009 16:34:02

Ich habe gerade das Tool Xenu laufen, dass tote Links überprüft. Dabei werden 100 Seiten nahezu gleichzeitig gecheckt, sprich 100 Zugriffe auf das Intranet werden simuliert.
Der Server ist voll ausgelastet. Der Aufbau der Startseite dauert dann ca. 5 Sekunden.

Liegt das Problem nicht eher beim Apache selbst?
Der Festplattenzugriff lässt sich ja wohl nicht über eine Konfig-Einstellung ändern?!

Felix Woldt

Bild Felix Woldt

Registriert seit: 31.01.2006

Beiträge: 353

Dienstag, 18. August 2009 16:46:10

wir nutzen lighttpd + fastcgi php5, deshalb kann ich dir zu apache nicht viel sagen.
Lighttpd reagiert in unserer meinung schneller, und verbraucht unserer ansicht weniger resourcen.

Ein Bsp: http://www.tv-fdz.de Startseite braucht 0,05 sec gecached

Ist dein server ein vserver oder eine standalone maschine?

Wenn deine ez seite voll gecached ist, dann solltest du max 2-3 mysql query haben (als anonymous), sonst ist was nicht gecached.

Gruß Felix

http://www.jac-systeme.de - Individuelle WEB-Lösungen
--
http://www.CJW-Network.com/de - Developers united in eZ Publish
http://projects.ez.no/cjw_newsletter - eZ Publish Newsletter Lösung

Ronny P.

Registriert seit: 24.06.2008

Beiträge: 20

Dienstag, 18. August 2009 17:19:37

Es handelt sich um einen Standalone-Server, auf dem derzeit auch das alte Intranet (statische HTML-Seiten) betrieben wird.

Beim Aufruf der vollgecachten Startseite habe ich immer noch 15 Anfragen:

Notice: eZMySQLDB::query(0.000 ms) query number per page:0 Aug 18 2009 17:12:38
SET NAMES 'utf8'

Notice: eZMySQLDB::query(1 rows, 0.446 ms) query number per page:1 Aug 18 2009 17:12:38
SELECT data, user_id, expiration_time FROM ezsession WHERE session_key='bccf24ac4d4a3e2b9fb44b3bafa35c0c'

Notice: eZMySQLDB::query(2 rows, 0.992 ms) query number per page:2 Aug 18 2009 17:12:38
SELECT id, name, locale, disabled FROM ezcontent_language ORDER BY name ASC

Notice: eZMySQLDB::query(1 rows, 1.157 ms) query number per page:3 Aug 18 2009 17:12:38
SELECT e0.id AS e0_id, e0.link AS e0_link, e0.text AS e0_text, e0.text_md5 AS e0_text_md5, e0.action AS e0_action, e0.is_alias AS e0_is_alias
FROM ezurlalias_ml e0 WHERE e0.parent = 0 AND (e0.lang_mask & 3 > 0) AND e0.text_md5 = MD5( 'startseite' ) LIMIT 0, 1

Notice: eZMySQLDB::query(1 rows, 1.636 ms) query number per page:4 Aug 18 2009 17:12:38
SELECT DISTINCT ezrole.id, ezrole.name, ezuser_role.limit_identifier, ezuser_role.limit_value, ezuser_role.id as user_role_id FROM ezrole, ezuser_role
WHERE ezuser_role.contentobject_id IN ( 42,4,10 ) AND ezuser_role.role_id = ezrole.id

Notice: eZMySQLDB::query(6 rows, 1.085 ms) query number per page:5 Aug 18 2009 17:12:38
SELECT id, role_id, module_name, function_name FROM ezpolicy WHERE role_id='1' ORDER BY id ASC

Notice: eZMySQLDB::query(2 rows, 2.607 ms) query number per page:6 Aug 18 2009 17:12:38
SELECT id, policy_id, identifier FROM ezpolicy_limitation WHERE policy_id='1210' ORDER BY id ASC

Notice: eZMySQLDB::query(15 rows, 1.196 ms) query number per page:7 Aug 18 2009 17:12:38
SELECT id, limitation_id, value FROM ezpolicy_limitation_value WHERE limitation_id='575' ORDER BY value ASC

Notice: eZMySQLDB::query(16 rows, 0.747 ms) query number per page:8 Aug 18 2009 17:12:38
SELECT id, limitation_id, value FROM ezpolicy_limitation_value WHERE limitation_id='576' ORDER BY value ASC

Notice: eZMySQLDB::query(0 rows, 0.472 ms) query number per page:9 Aug 18 2009 17:12:38
SELECT id, policy_id, identifier FROM ezpolicy_limitation WHERE policy_id='1211' ORDER BY id ASC

Notice: eZMySQLDB::query(0 rows, 0.466 ms) query number per page:10 Aug 18 2009 17:12:38
SELECT id, policy_id, identifier FROM ezpolicy_limitation WHERE policy_id='1212' ORDER BY id ASC

Notice: eZMySQLDB::query(1 rows, 0.718 ms) query number per page:11 Aug 18 2009 17:12:38
SELECT id, policy_id, identifier FROM ezpolicy_limitation WHERE policy_id='1213' ORDER BY id ASC

Notice: eZMySQLDB::query(1 rows, 0.605 ms) query number per page:12 Aug 18 2009 17:12:38
SELECT id, limitation_id, value FROM ezpolicy_limitation_value WHERE limitation_id='577' ORDER BY value ASC

Notice: eZMySQLDB::query(1 rows, 0.481 ms) query number per page:13 Aug 18 2009 17:12:38
SELECT id, policy_id, identifier FROM ezpolicy_limitation WHERE policy_id='1214' ORDER BY id ASC

Notice: eZMySQLDB::query(1 rows, 0.606 ms) query number per page:14 Aug 18 2009 17:12:38
SELECT id, limitation_id, value FROM ezpolicy_limitation_value WHERE limitation_id='578' ORDER BY value ASC

Notice: eZMySQLDB::query(0 rows, 0.471 ms) query number per page:15 Aug 18 2009 17:12:38
SELECT id, policy_id, identifier FROM ezpolicy_limitation WHERE policy_id='1215' ORDER BY id ASC

Felix Woldt

Bild Felix Woldt

Registriert seit: 31.01.2006

Beiträge: 353

Dienstag, 18. August 2009 17:43:04

das hängt von den zuweisungen der rollen ab.
Die querys scheinen aber nicht das problem zu sein ist ja nur mi ms bereich.

Einfach auch mal zum vergleich den cache auschalten und werte vergleichen.

Ich tippe immer noch auf ein langsames festplattensubsystem wenn 50% ini_load

Gruß FElix

http://www.jac-systeme.de - Individuelle WEB-Lösungen
--
http://www.CJW-Network.com/de - Developers united in eZ Publish
http://projects.ez.no/cjw_newsletter - eZ Publish Newsletter Lösung

Ronny P.

Registriert seit: 24.06.2008

Beiträge: 20

Donnerstag, 03. September 2009 09:50:00

Habe gelesen, dass die Performance unter Windows allgemein auch aufgrund des Dateisystems nicht so "überzeugend" sein soll:
http://www.alexander-block.net/Be...ch/eZ-Systems/eZ-Publish-Performance

D.h. ich müsste mich damit abfinden? Die ganze Produktivumgebung auf Linux umzuziehen zu lassen, geht sicher nicht so schnell von der Hand oder?

Markus Mair

Registriert seit: 26.01.2008

Beiträge: 8

Samstag, 17. Oktober 2009 00:57:24

Hallo,

Template Compile aktiviert?

Debug komplett ausgeschaltet?

Cache Blöcke definiert?

Um Zugang zu den Foren zu erhalten, müssen Sie angemeldet sein