Comparaison de performances entre eZ Publish 4.0.1 et 4.1

C'est la saison des benchmarks autour d'eZ Publish :) Bertrand a fait une intéressante comparaison entre le mode cluster et le mode classique, suivi de près par un article sur ez.no mettant en évidence le gain apporté par le fameux Stale Cache dans la génération du cache de contenu. De mon côté, j'ai adapté les scripts de mon benchmark entre eZ Publish 3.10 et eZ Publish 4 pour comparer cette fois uniquement les performances sur une page en cache de ce site (/blog) avec eZ Publish 4.0.1, eZ Publish 4.1 sans optimisation et eZ Publish 4.1 avec un fichier config.php ; le but étant de déterminer le gain apporté par les différentes améliorations de performances pour un site sur un seul serveur.

Informations techniques

  • Serveur : une Dedibox v1 ancienne génération (processeur Via C7 à 2Ghz avec 1Go de RAM)
  • Logiciels : Apache 2.2.8, PHP 5.2.4 avec le module xcache, MySQL 5.0.51
  • Caractéristique de la page : la page fait les 3 requêtes SQL minimum (session, chargement des langues et détermination de la page concernée)
  • Test : plusieurs séries de 500 requêtes avec un concurrence de 2 réalisées avec l'utilitaire ab sur chacune des installations

Le fichier config.php :

<?php
define( 'EZP_USE_BUNDLED_COMPONENTS', true );
define( 'EZP_INI_FILEMTIME_CHECK', false );
?>

Résultats

Le résultat est plutôt spectaculaire. La simple mise à jour en 4.1 donne un gain de presque 30% dans la distribution d'une page en cache ! Avec la configuration ci-dessus dans le fichier config.php le gain est même de 50% ! Pendant les phases de tests, j'ai également constaté que la charge de la machine est bien plus faible. Comme d'habitude ces chiffres sont à prendre avec des pincettes, ils représentent le gain sur un site bien optimisé (enfin j'espère) sur un serveur bas de gamme. Un test sur un serveur plus haut de gamme serait vraiment intéressant.

» Commentaires

- Changement d'include_path (#67728) par Jérôme le 02 Avril 2009 à 09:07
Bonjour Damien,

une idée me vient juste à l'esprit.
Qu'est-ce que ça donne si tu utilise :

define( 'EZP_USE_BUNDLED_COMPONENTS', true );
define( 'EZP_INI_FILEMTIME_CHECK', false );
ini_set( 'include_path', '.' );

Comme normalement les Components sont livrés avec eZ Publish (du moins si tu as choisis cette version là), tu n'as plus besoin de parcourir d'autres chemins sur le file system à a recherche d'autre fichier ez*.

Normalement, ça devrais libérer un peu plus la pression sur le disque.

Bonne journée :)
- PHP 5.2 vs PHP 5.3 (#67729) par Derick Rethans le 02 Avril 2009 à 09:29
Hello Damien,

(I can read the French, just not write it). It would be cool if you also could compare PHP 5.2 vs. PHP 5.3 performance here. Do you think that would be possible?

regards,
Derick
- include_path / PHP 5.3 (#67730) par Damien le 02 Avril 2009 à 09:58
@Jérôme : c'était déjà le cas dans la configuration de PHP :)

@Derick : I was planning to do that shortly but it will be a little more time consuming as I have to compile PHP 5.3... (there's no problem with english in comments btw)
- we want more! (#67731) par gaetano le 02 Avril 2009 à 10:54
Excellente comparaison, ca donne envie d'en avoir toujours plus!

1 - Serait-il possible de benchmarker la memoire utilisée par chaque version?

2 - je crois qu'on devrait essayer d'arriver a des test-case plus ou moins standard en termes de config eZ / page affichée tout au moins, afin de rendre plus simples les comparaisons faits pas differentes personnes / sites.
A ce propos, je propose:
- tester la homepage des install plain, webin et flow, config out-of-the-box / avec des configs tunées mais pas de dev "ez" fait
- tester la page qui fait 3 requetes sql comme la tienne (il faut publier le tpl du noeud et de pagelyaout)
- utiliser jmeter, car ab est en general tenu pour peu fiable et pas assez flexible
- 5.3 & p/s (#67732) par André R. le 02 Avril 2009 à 11:29
Is this on Windows Damien? Might be the server spec but the numbers seems very low, even on my notebook I'll get ~40 req/sec, my home computer 90 - 110 req/sec (depending on tweaking) and on a higher end server 130 - 140 req/sec.

btw: 5.3 brings about 20% (even more on windows) better performance, but it would be nice with some numbers.

Note: 2 other 4.1 tweaks are [RegionalSettings]TranslationCheckMTime=disabled and
[URLTranslator]TranslatableSystemUrls=disabled

But thanks for a nice comparison ;)
- Merci (#67733) par Nicolas le 02 Avril 2009 à 11:55
Toujours très bon de voir comment eZ Publish se fait décortiquer ! Merci pour ce bench. Ce qu'on en retient et qui confirme nos mesures, c'est le boost de l'ordre de 50% entre un 4.0 et un 4.1 fine-tuné. Les chiffres sont en valeur absolue effectivement en deçà de ce que nous encontrons en moyenne, mais l'important ici est bien le *delta* !

Si à l'occasion, comme le dit André, tu as l'occasion de tester avec PHP 5.3, tu pourras faire grandir la dernière barre de ton graphe :)
- more ! (#67734) par Damien le 02 Avril 2009 à 12:17
@gaetano

1. J'ai activé le debug. et je viens de tester rapidement, il n'y a quasiment aucune différence entre les différentes installations (+ 60Ko pour les 4.1 une fois tous les caches générés / + 300ko juste après vidage de cache)

2. je pense que ma page est très proche de ce que fait ezwebin par défaut, elle est composé du cache de contenu, d'un cache-block pour le menu de droite et un peu de code "pagelayout" léger. Le code est dispo [1][2] si intéresse quelqu'un :) Sinon c'est vrai que ab est assez bête et méchant mais il est très simple donc très pratique.

@André R. / @Nicolas : the test were made on a very poor server. ViaC7@2Ghz processor of the server is quite close to a Celeron 1,4GHz (I think)...

[1] http://projects.pwet.fr/svn/pwet/...et2/override/templates/full/blog.tpl
[2] http://projects.pwet.fr/svn/pwet/...erride/templates/pagelayout_blog.tpl
- Impact du hardware ? (#67735) par Bertrand le 02 Avril 2009 à 13:01
Je viens de faire un test rapide comparant eZ publish 4.1 avec et sans config.php (INI + Components + include path = .). La différence est nettement moindre sur du hardware costaud (le même que mon autre test, quad xeon, 4 GB de ram, U3W SCSI): de l'ordre de 82 requêtes / seconde sans les settings ,86 avec. Mais pas très surprenant, ces paramètres aidant nettement plus un hardware un peu limite (HD principalement).
- Performance 4.2 (#68097) par Cyril le 05 Janvier 2010 à 15:54
Bonjour,

Avez-eu l'occasion de continuer ces tests avec la version 4.2 ?

Merci,

Cyril

Les commentaires sont désactivés

» Trackback

Aucun trackback

Les trackacks sont désactivés

Flux RSS des billets

Flux RSS des billets

Rechercher sur pwet.fr

À retenir

Derniers commentaires

Archives

Nuage de tags

Bioutifoul photos

Quelques liens

Licence d'utilisation

Contenu sous Licence Creative Commons By-Sa

Sauf mentions spécifiques, les billets et les photos publiés sur ce site sont placés sous la licence Creative Commons by-sa.

Pour toute utilisation dépassant le cadre de cette licence, merci de me contacter par e-mail.

Login