PHP caching Opcode
admin janvier 16th, 2009
Parmis les outils sympathiques dont nous disposons pour alléger les ressources processeur d’un serveur Apache / Php il existe des solutions dite de caching Opcode.
En précompilant les scripts PHP et en les mettant en cache elles soulagent le compilateur Php. Elles permettent de manière significative d’alléger le travail du(es) processeurs d’un serveur et donc par extension d’accepter aussi plus de trafic sur un seul serveur ;-).
La solution que j’ai tésté sous débian et approuvé depuis maintenant 6 mois est Eaccelerator (Sans aucun problème)
Voici la suite de commandes à passer dans le shell de votre serveur linux :
aptitude install php5-dev wget http://bart.eaccelerator.net/source/0.9.5.3/eaccelerator-0.9.5.3.tar.bz2 bunzip2 eaccelerator-0.9.5.3.tar.bz2 tar xvf eaccelerator-0.9.5.3.tar cd ./eaccelerator-0.9.5.3 phpize ./configure make make install
Editer le fichier /etc/php5/apache2/php.ini
Insérer les infos de configuration au niveau des extensions :
extension="eaccelerator.so" eaccelerator.shm_size="256" 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"
Créer le répertoire de stockage des fichiers précompilés
mkdir /var/cache/eaccelerator chmod 777 /var/cache/eaccelerator
Réloader Apache
/etc/init.d/apache2 reload
Vérifier dans le phpinfo si Eaccelerator est actif et lancé.
Et ensuite les essais de montée en charge sous apache.. Croustillant
Un simple petit ab va vous donner des ailes quand à l’optimisation que le caching Opcode amène.
Avec eaccelerator :
ab -n 1000 -c 20 http://url
>>>> Requests per second: 156.29 [#/sec]
Sans eaccelerator :
>>>> Requests per second: 44.46 [#/sec]
Résultat on a divisé la charge serveur par 3 (en gros) ou si vous préférez le serveur maintenant accèpte 150 reqùetes à la seconde au lieu de 45 à la seconde.
J’ai lu que parfois certains système de caching Opcode avaient du mal à rafraichir leurs sources en cas de mise à jour massive de scripts php. Eaccelerator n’est à priori pas de ceux la.
Si vous faites évoluer votre version de php, n’oubliez pas de recompiler eaccelerator.
Avant la recompilation faites un
make clean
Références :
http://www.eaccelerator.net/
http://www.ipersec.com/index.php/2006/05/30/benchmarking-php-accelerators/
http://2bits.com/articles/benchmarking-apc-vs-eaccelerator-using-drupal.html
- Administration Linux
- Comments(0)
