Skip to content


Accélérer l'affichage de vos pages PHP avec eAccelerator sous Debian Squeeze

-: Modifié le 11-11-2012 :-
-: Modifié le 20-08-2011 :-

Introduction

Nous avons tous connu les affres de l'affichage de certaines pages plus lent que ce que l'on pourrait s'y attendre ! En effet certaines pages sont délivrées par PHP et demandent quelques requêtes SQL... l'affichage est lent. Pourtant cette page depuis sa création n'a pas changée... alors ?

Plusieurs solutions sont à votre portée !

Nous allons voir une solution qui consiste à installer : eAccelerator.

 

Installation de eAccelerator

Il faut aller télécharger l'archive eaccelerator : wget http://www.debiantutorials.com/static/eaccelerator-0.9.6.1.tar.bz2

Là cela demande un peu de manipulation et d'attention.

Il faut installer deux paquets supplémentaires :

apt-get install php5-dev

Il faut dés-archiver ce fichier :

tar -xvjf eaccelerator-0.9.6.1.tar.bz2

Il faut se rendre dans le répertoire ainsi créé : cd eaccelerator-0.9.6.1

Puis tapez les commandes suivantes :

phpize
./configure
make
make install

Créez un fichier :/etc/php5/conf.d/zend.ini

[eaccelerator]
zend_extension="/usr/lib/php5/XXXXXXX/eaccelerator.so"
eaccelerator.shm_size="16"
eaccelerator.cache_dir="/var/cache/eaccelerator"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"

Vérifiez la bonne intégration de eAccelerator à PHP :

# php -v
PHP 5.3.3-7+squeeze3 with Suhosin-Patch (cli) (built: Jun 28 2011 13:13:26)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
with eAccelerator v0.9.6.1, Copyright (c) 2004-2010 eAccelerator, by eAccelerator
with Suhosin v0.9.32.1, Copyright (c) 2007-2010, by SektionEins GmbH

Vous pouvez redémarrer apache : service apache2 restart

Vous devriez ressentir une certaine augmentation de vitesse d'affichage...

Souci rencontré : limite de la mémoire partagée (shmmax)

Attention tout de même, la valeur de" eaccelerator.shm_size = 16" doit être inférieure ou égale à la valeur indiquée par :

# cat /proc/sys/kernel/shmmax

Sinon toute les pages envoyées par apache seront inaccessibles !

Deux méthodes peuvent-être utilisées afin de mettre en conformité ces deux variables :

- echo

- sysctl

Avec la commande : echo "$valeur" > /proc/sys/kernel/shmmax

Vous indiquez que la mémoire partagée utilise telle ou telle valeur. Initialement la taille indiquée pour la mémoire partagée était de "33554432" soit 32Mo.

Désirant indiquer que pour eAccelerator nous pouvions utiliser 64Mo je me suis retrouvé avec des page lors de leur consultation en "page réinitialisée" !

Ainsi il faut augmenter la mémoire partagée possible : 64Mo = 67108864 o, je vais donc mettre 128Mo soit le double !

avec un :

# echo "134217728" > /proc/sys/kernel/shmmax

Mais si votre serveur redémarre cette valeur sera perdue...

J'ai donc choisit d'éditer le fichier : /etc/sysctl.conf

et de placer les instructions suivantes :

kernel.shmall = 134217728
kernel.shmmax = 134217728

Puis j'ai appliqué les changements :

# sysctl -p

Voilà... 🙂

 

Ajout du 20-08-2011

Si vous désirez -voir comment se comporte eAccelerator, mettez ceci dans /etc/php5/conf.d/zend.ini

[eaccelerator]
zend_extension ="/usr/lib/php5/20090626+lfs/eaccelerator.so"
eaccelerator.shm_size ="64"
eaccelerator.cache_dir ="/var/cache/eaccelerator"
eaccelerator.enable ="1"
eaccelerator.optimizer ="1"
eaccelerator.check_mtime ="1"
eaccelerator.debug ="1"
eaccelerator.filter =""
eaccelerator.shm_max ="0"
eaccelerator.shm_ttl ="0"
eaccelerator.shm_prune_period ="0"
eaccelerator.shm_only ="0"
eaccelerator.compress ="1"
eaccelerator.compress_level ="9"
eaccelerator.log_file = "/var/log/apache2/eaccelerator.log"
eaccelerator.allowed_admin_path = "/var/www/eaccelerator/"

 

Cela vous permettra de suivre les hit et la mise en cache par eAccelerator !
Sinon pour suivre le cache de eAccelerator une page est présente dans le répertoire : control.php
Nous allons créer un répertoire accueillant cette page :

mkdir /var/www/eaccelerator
chmod 777 /var/www/eaccelerator
cp control.php /var/www/eaccelerator

Il faut modifier le fichier afin de changer l'accès à cette page :

$pw = "xxxxxxxxxxxxxxxxxxxx";

On obtient en se rendant sur la page :

Accélérez bien !

Pas trop, attention aux radars en période estivale ! 😉

Je vous conseille par ailleurs de jeter un œil à la page :

http://blog-dev.net/technique/serveurs/monter-une-partition-en-memoire-avec-tmpfs/003

Cela vous donnera peut-être l'idée de monter en RAM /var/cache/eaccelerator ? 🙂

Mettre en RAM le cache de eAccelerator

Le répertoire du cache de eAccelerator est  /var/cache/eaccelerator et je le déclare dans fstab comme répertoire tmpfs

ce qui donne :

tmpfs /var/cache/eaccelerator/ tmpfs size=64m 0 0

Faites un

mount -a

ou un

mount -o remount -a

ou un reboot... 😉 Et voilà !

---------------------------------------------

Webographie :

Print Friendly, PDF & Email

Posted in Debian, Important, Linux, Technique, Toutes. Tagged with , , , , .

0 Responses

Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.

Some HTML is OK

(required)

(required, but never shared)

or, reply to this post via trackback.

Time limit is exhausted. Please reload CAPTCHA.


/* */
Creative Commons License
Cette création par Laurent Besson est mise à disposition selon les termes de la licence Creative Commons Paternité-Partage des Conditions Initiales à l'Identique 2.0 France.