29-11-2011 : Remettre dans le débat politique les principes du Conseil National de la Résistance
17-02-2012 : Pétition pour une protection de l’apiculture et des consommateurs face au lobby des OGM
Logo de mon site
Logo de mon site
Faire un don

Luxpopuli / eZ Publish / Dossiers techniques / eZ publish : optimiser l'environnement





Right menu

Logo du site ez.no  Logo XHTML 1.O du W3C  Logo XHTML 1.O du W3C  Site francophone officiel de Firefox
zero papier grâce aux catalogues et promos en ligne de bonial

eZ publish : optimiser l'environnement

Date de publication: le vendredi 13 juillet 2007 à 01h16
Dernière modification: par Pascal BOYER le dimanche 26 septembre 2010 à 20h41

Introduction

This article describes the optimal eZ publish operating environment. It provides instructions for installing and configuring Apache, PHP and APC (Alternative PHP Cache). The article assumes that you are running Linux in both your development and production environments, as Linux provides the best performance and stability for an eZ publish installation.
Cet article décrit l'environnement d'exploitation optimum pour eZ Publish et fournit des informations sur l'installation et la configuration du serveur Web Apache , PHP  et APC  (Alternative PHP Cache). Par la suite, on supposera que vous utilisez Linux  pour votre environnement de production et de développement puisque Linux permet d'obtenir la plus stable et la plus performante installation de eZ Publish.

The web server environment / L'environnement "serveur web"

The web server environment includes the operating system and third-party applications that eZ publish requires in order to run. In addition to an operating system (preferably Linux), eZ publish requires the following components:
L'environnement "serveur web" inclut le système d'exploitation et les applications tierces dont a besoin eZ Publish pour fonctionner. En plus du système d'exploitation, de préférence Linux, eZ Publish requière les éléments suivants:

  • Un serveur web Apache
  • PHP
  • Alternative PHP Cache
  • ImageMagick ou GD

One or more of these components may already be installed on your Linux server. Before building and installing the components as described below, check for previously installed versions.
Un ou plusieurs de ces éléments sont sans doute déjà installés sur votre serveur Linux. Donc, avant d'installer les éléments listés ci-dessus, vérifiez qu'une de leur version n'est pas déjà installée.

Request model on the server side / Modèle de requête du côté serveur

This diagram shows the process by which URL requests are handled by an eZ publish server:
Ce diagramme montre le processus de gestion des requêtes URL par un serveur eZ Publish:

 

 

Request model on the server side / Modèle de requête du côté serveur

Database / Base de données

eZ publish content objects are stored in a database. While eZ publish can use MySQL, PostgreSQL or Oracle, MySQL is the preferred database for optimal performance. MySQL can either be installed on the same server as eZ publish or on another server. When running eZ publish in a clustered environment (that is, load balanced over multiple web servers) we recommend that you run a Squid reverse proxy cache in front of eZ publish. 
Les objets de contenu  de eZ Publish sont stockés dans la base de données. Bien que eZ Publish puisse utiliser les gestionnaires de bases de données MySQL , PostgreSQL  ou Oracle , MySQL est le SGBD permettant d'obtenir les meilleures performances. MySQL peut être installé soit sur le même serveur que celui de eZ Publish soit sur un autre serveur. Lorsque vous faites fonctionner   eZ publish sur un cluster  (répartition de charge sur plusieurs serveurs) nous vous recommandons de placer, en amont de eZ Publish, un proxy Squid  faisant office de serveur de cache (???).

Installing and configuring MySQL will be the topic of an upcoming article. For general instructions, refer to the documentation.
L'installation et la configuration de MySQL est le sujet de cet article: Tuning MySQL for eZ Publish . Pour des informations générales référez-vous à la lecture de la documentation sur l' installation normale de eZ publish

Intel ICC compiler / Compilateur Intel ICC

The Intel ICC Compiler automatically optimizes and parallelizes code to take best advantage of Intel processors. You can get better performance results with Apache, PHP and APC if they are compiled for Intel processors with ICC.
Le compilateur ICC d'Intel  optimise et parallélise le code pour tirer le meilleur parti des processeurs Intel. Vous pouvez obtenir de meilleures performances avec Apache, PHP et APC s'ils sont compilés pour un processeur Intel avec ICC.

The Intel ICC Compiler for Linux is proprietary software and requires a valid license . For more information and for trial versions, refer to http://www.intel.com/software/products/compilers/clin/. Refer to the INSTALL file included with the distribution for installation instructions.
Le compilateur ICC d'Intel  destiné aux plates-formes Linux est un logiciel propriétaire qui nécessite d'être en possession d'une licence valide. Pour plus d'informations et pour obtenir une version d'essai, allez sur le site http://www.intel.com/software/products/compilers/clin/ puis, pour les instructions d'installation, référez-vous au fichier INSTALL inclus dans la distribution.

To compile Apache, PHP and APC with ICC (as described in the following sections), you must export the CC environment variable:
Pour compiler Apache, PHP et APC avec ICC (comme décrit ci-dessous), vous devez exporter la variable d'environnement CC:

shell> export CC=/opt/intel/cc/9.0/bin/icc

Before you run the   configure   script, make sure that the   CC   variable is exported correctly. Be sure that you remove any   config.cache   files before running   configure  , and run   make clean   after configuring before compiling.
Avant d'exécuter le script configure, assurez-vous que la variable CC est exportée correctement. Assurez-vous également d'avoir supprimé tous les fichiers config.cache, puis lancez la commande make clean après la configuration et avant la compilation.

ICC results / Résultats obtenus avec ICC

We compared the results of compiling Apache, PHP and APC with the ICC compiler versus compiling with the GNU C Compiler (GCC). All tests were done with 50 000 articles in the database. The test case was listing a folder with 5 000 articles sorted by publishing time, displaying ten articles at a time. MySQL was configured with a read cache in this configuration, and was only taking 1.5% of the processing time. Therefore, most of the time was used for PHP processing on the web server.
Nous avons comparé les résultats de la compilation de Apache, PHP et APC avec le compilateur ICC aux résultats obtenus avec une compilation faite avec GCC ( Compilateur C de GNU ). Tous les tests ont été faits avec une base de données contenant 50 000 articles. Le test consistait à parcourir/énumérer (???) un répertoire de 5 000 articles classés par date de publication et d'afficher 10 articles à la fois. MySQL était configuré avec un cache de lecture (???) et ne prenait que 1.5% du temps de traitement (???). Donc, la plus grande partie du temps servait au traitement PHP sur le serveur web.

The tests were done with three configurations:
Les test ont été faits avec trois configuration différentes:

  1. Template compilation and view cache disabled
    Compilation des templates et cache des vues désactivés
  2. Template compilation enabled and view cache disabled
    Compilation des templates activée et cache des vues désactivé.
  3. Template compilation enabled and view cache enabled
    Compilation des templates et cache des vues activés.

 

  Cas 1 Cas 2 Cas 3
GCC template total 0.9589 secondes 0.5147 secondes 0.0480 secondes
ICC template total 0.7713 secondes 0.4184 secondes 0.0396 secondes
Template difference 19.57% 18.72% 17.39%
GCC pageviews 2.760 4.79 33.24
ICC pageviews 3.15 5.33 35.33
Page difference 12.73% 11.32% 6.28%

 

We see that the performance gain in the template processing is quite good, up to almost 20%. The performance increase in the pageview is almost 13% faster; this indicates that the more processing the page requires, the bigger the performance improvement gained by using the ICC compiler. The total increase in performance measured with actual pageviews, including transfer from server to client is faster regardless of the page size, but it is especially noticeable when cache is disabled (which requires more serverside processing).
Nous voyons que le gain de performances en terme de traitement des templates est très bon: presque 20%. Le gain de performances en terme de pageview (???) est presque de 13%. Ceci indique que plus la page nécessite de traitement plus les gains de performances dûs à l'utilisation du compilateur ICC sont grands. Le gain total de performance mesuré avec les pageviews (???) réels, incluant le transfert du serveur au client, est plus important (???), indépendamment de la taille des pages, et est particulièrement visible lorsque le cache est désactivé (car il requière plus de traitement du côté serveur).

Friday 04 August 2006 10:41:00

Commentaires