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:
-
Template compilation and view cache disabled
Compilation des templates et cache des vues désactivés -
Template compilation enabled and view cache disabled
Compilation des templates activée et cache des vues désactivé. -
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).
Commentaires














