Aller au contenu | Aller au menu | Aller à la recherche


PHP accélérateurs : eAccelerator XCache ionCube Nusphere APC MemCache (cache PHP)

Selon leur système de cache, quel est le meilleur accélérateur de code PHP ?

Les différents PHP cache accélérateur

Les accélérateurs maintenus

APC

APC — Cache PHP alternatif

Le "Alternative PHP Cache" (APC) est un cache d'opcode libre et ouvert pour PHP permetant d'optimiser le code PHP et le cache de données et le code compilé PHP depuis le compilateur bytecode en mémoire partagée. Il a été conçu afin de fournir un framework libre, ouvert et robuste pour la mise en cache et l'optimisation de code intermédiaire PHP. (extension PECL, incluse en standard à partir de PHP6)

eAccelerator

eAccelerator est né en Décembre 2004 comme une branche de Turck MMCache projet. Turck MMCache a été créé par Dmitry Stogov et une grande partie de la eAccelerator code est toujours fondée sur son travail. eAccelerator contenait également un codeur PHP et chargeur, mais le développement personnel de l'encodeur abandonnées et ont supprimé cette fonction après Décembre 2006.

XCache

XCache est une manière rapide, stable cacher opcode de PHP qui a été testé et fonctionne sur les serveurs de production sous haute charge. Il est testé sur linux. Threadsafe / Windows est également soutenu. Il est conçu pour surmonter un grand nombre de problèmes qui ont été observés avec d'autres concurrents opcachers, comme pouvant être utilisés avec les nouvelles versions de PHP. Petit nouveau sur le bloc développé par moo qui est également l'un des développeurs de Lighttpd. Développée afin de surmonter certaines des limitations des solutions existantes à ce moment-là.

Nusphere PhpExpress

NuSphere PhpExpress est un accélérateur PHP gratuit qui accélère l'exécution régulière de fichiers PHP et fournit également un soutien pour le chargement des fichiers PHP encodé avec Nu-Coder - PHP Encoder NuSphere. PhpExpress charges encodés scripts PHP PHP directement dans le moteur permet de gagner du temps et améliorer la performance de l'interpréteur PHP. PhpExpress met également en œuvre pour la mise en cache PHP et le moteur accélère, même si l'exécution de script PHP n'est pas codée.

MemCache

Le module Memcache fournit une interface procédurale maniable ainsi qu'orientée objet à Memcache, un démon fortement efficace dans la gestion du cache, qui est principalement destiné à faire baisser la charge des bases de données dans les applications web dynamiques.

Les accélérateurs obsolètes qui ne sont plus maintenus

ionCube PHP Accelerator (PHPA)

Turck MMCache

Comparaison des accélérateurs PHP

On se basera sur Benchmarking Drupal with PHP op-code caches: APC, eAccelerator and XCache compared

Requests per Second Single Request (milliseconds) Memory (Maximum, MB) Memory (Minimum, MB)
None 10.41 96.08 24 24
eAccelerator 31.26 31.99 23 18
XCache 30.28 33.02 29 19
APC 30.45 32.84 21 21

Dont le retour avec PHP 5.2.4 est de l'utilisation d'un accélérateur est :

  • Un gain de vitesse est d'environ 3X.
  • eAccelerator est légèrement mieux que les APC ou XCache tant en termes de rapidité et d'utilisation de la mémoire.

MediaWiki et le cache

Lors de l'installation du Wiki MediaWiki , il teste la présence de Turck MMCache, eAccelerator, APC et XCache.

Conclusion

Ayant déjà testé eAccelerator dont l'accélération est fulgurante sur des produits tels qu'eZpublish et vu que APC est prévu en natif dans PHP 6.0, nous allons essayer d'installer APC sur PHP 5.3

Note : sous Debian, je n'ai pas chercher la complication et j'ai utiliser un paquet tout fait parmis :

  • php-apc - APC (Alternative PHP Cache) module for PHP 5
  • php5-apc - apc module for php5
  • php5-memcache - memcache module for php5 (memcache extension module for PHP5)
  • php5-xcache - xcache module for php5 (Fast, stable PHP opcode cacher)

Compilation d'extensions PECL partagées avec la commande pecl

Sans spécifier la version; pecl prends la dernière version stable.

On peut également installer une version spécifique en utilisant la commande :

pecl install extensionChoisie-{version}
[root@monserveur bin]# ./pecl install apc-3.1.2
downloading APC-3.1.2.tgz ...
Starting to download APC-3.1.2.tgz (123,459 bytes)
.................done: 123,459 bytes
45 source files, building
running: phpize
Configuring for:
PHP Api Version:         20041225
Zend Module Api No:      20090115
Zend Extension Api No:   220090115
Enable per request file info about files used from the APC cache [no] :
Enable spin locks (EXPERIMENTAL) [no] :
building in /var/tmp/pear-build-root/APC-3.1.2
running: /tmp/pear/temp/APC/configure --enable-apc-filehits=no --enable-spinlocks=no
 
....
 
----------------------------------------------------------------------
Libraries have been installed in:
   /var/tmp/pear-build-root/APC-3.1.2/modules
 
If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
   - add LIBDIR to the `LD_LIBRARY_PATH' environment variable
     during execution
   - add LIBDIR to the `LD_RUN_PATH' environment variable
     during linking
   - use the `-Wl,--rpath -Wl,LIBDIR' linker flag
   - have your system administrator add LIBDIR to `/etc/ld.so.conf'
 
See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
 
Build complete.
Don't forget to run 'make test'.
 
running: make INSTALL_ROOT="/var/tmp/pear-build-root/install-APC-3.1.2" install
Installing shared extensions:     /var/tmp/pear-build-root/install-APC-3.1.2/APP/PHP/lib/php/extensions/no-debug-non-zts-20090115/
running: find "/var/tmp/pear-build-root/install-APC-3.1.2" | xargs ls -dils
393220   4 drwxr-xr-x 3 root root   4096 mai 15 12:22 /var/tmp/pear-build-root/install-APC-3.1.2
393279   4 drwxr-xr-x 3 root root   4096 mai 15 12:22 /var/tmp/pear-build-root/install-APC-3.1.2/APP
393280   4 drwxr-xr-x 3 root root   4096 mai 15 12:22 /var/tmp/pear-build-root/install-APC-3.1.2/APP/PHP
393281   4 drwxr-xr-x 3 root root   4096 mai 15 12:22 /var/tmp/pear-build-root/install-APC-3.1.2/APP/PHP/lib
393282   4 drwxr-xr-x 3 root root   4096 mai 15 12:22 /var/tmp/pear-build-root/install-APC-3.1.2/APP/PHP/lib/php
393283   4 drwxr-xr-x 3 root root   4096 mai 15 12:22 /var/tmp/pear-build-root/install-APC-3.1.2/APP/PHP/lib/php/extensions
393284   4 drwxr-xr-x 2 root root   4096 mai 15 12:22 /var/tmp/pear-build-root/install-APC-3.1.2/APP/PHP/lib/php/extensions/no-debug-non-zts-20090115
393278 540 -rwxr-xr-x 1 root root 545796 mai 15 12:22 /var/tmp/pear-build-root/install-APC-3.1.2/APP/PHP/lib/php/extensions/no-debug-non-zts-20090115/apc.so
 
Build process completed successfully
Installing '/APP/PHP/lib/php/extensions/no-debug-non-zts-20090115/apc.so'
install ok: channel://pecl.php.net/APC-3.1.2
configuration option "php_ini" is not set to php.ini location
You should add "extension=apc.so" to php.ini

Ressources

Ajouter un commentaire

Le code HTML est affiché comme du texte et les adresses web sont automatiquement transformées.

Fil des commentaires de ce billet