APC Cache PHP alternatif
Présenté par : MASLINE-CAMERINI Antoine 1
- Pré requis à connaître
- Introduction
- Principe de fonctionnement
- Installation
- Utilisation
- Comparatif
- Conclusion
Plan de la présentation
2
- Php : Langage utilisé pour produire des sites web dynamique.
Pré requis à connaitre
HTML PHP
Serveur de bases de données
Serveur d ’applications
Client
HTTP
POST/GET
Connexion PHP
Requêtes SQL
Pages HTML $Résultat
Navigateur web Apache + PHP 3
Pré requis à connaitre
Quelques petites particularités :
- Code écrit entre « <?php » et « ?> »
- langage non typé
- Variable commençant par $ (exemple : $variable = "ok")
- foreach ($array_expression as $key => $value)
{ /* commandes */ }
4
Pré requis à connaitre
5
Signification d’APC ?
-> Alternative PHP Cache
But ?
-> Accélérer la génération de scripts PHP.
Introduction
6
Principe de fonctionnement
Script PHP Parsing PHP
Compile
Cache OpCode « APC »
Execute
Output Page HTML
7
Benchmark avec Firebug APC sur Symphony 2.4
SANS APC
AVEC APC
Principe de fonctionnement
8
- Avec de la chance votre hébergeur propose déjà
cette extension.
- Sinon :
- Demander à votre hébergeur de l'installer.
- Disposer de votre propre serveur dédié.
Installation
9
Installation sous Linux :
Pour php < 5.5
>> sudo apt-get install php-apc
>> sudo nano /etc/php5/apache2/php.ini
Pour php >= 5.5 (OPCache Natif)
>> sudo apt-get install php-apcu
>> sudo nano /etc/php5/apache2/php.ini
Installation (1/3)
10
Pour php < 5.5
Installation (2/3)
Ligne à ajouter
11
Pour php >= 5.5
Dans php.ini
>> zend_extension=/usr/lib/php5/20100525/opcache.so
>> opcache.enable=1
Dans /etc/php5/mods-available/apcu.ini
>> extension=apcu.so
Redémarrer Apache :
>> /etc/init.d/apache2 restart
Installation (3/3)
12
Propriété dans « php.ini »
- apc.enabled : Activer / désactiver APC.
- apc.shm_size : La taille en mémoire attribué à APC
- apc.optimization : Degré d'optimisation
- apc.filters : Expressions rationnelles séparées par des virgules.
Exemple : apc.filters = "(exemple|index|favori\.php) »
- apc.cache_by_default : Utilisation du cache par défaut
Exemple : apc.cache_by_default = 0
apc.filters="+(exemple|index|favori\.php) »
- apc.ttl : nombre de secondes pendant lesquelles le cache sera conservé.
Utilisation
13
Exemple d’utilisation :
Utilisation
14
Fonctions les plus utilisées
- Mettre en cache une variable (apc_add | apc_store)
- Récupérer une variable en cache (apc_fetch)
- Vérifier si une variable exist (apc_exists)
- Effacer une variable dans le cache (apc_delete)
- Supprimer le cache(apc_clear_cache)
- Mettre à jour une variable (apc_cas)
- Incrémenter/décrémenter une variable (apc_inc | apc_dec)
- Compiler un fichier (apc_compile_file)
- Supprime un fichier du cache (apc_delete_file)
Utilisation
15
Benchmark avec Apache-Benchmark
Sans l’utilisation d’un cache
Utilisation
16
Benchmark avec Apache-Benchmark
Avec l’utilisation d’un cache fichier
Utilisation
17
Benchmark avec Apache-Benchmark
Avec l’utilisation d’APC
Utilisation
18
- apc_cache_info : Récupère les informations du cache et les métadonnées depuis
le magasin APC.
- apc_sma_info : Récupère les informations d'allocation mémoire partagée d'APC.
Utilisation
19
Exemple d’utilisation :
Utilisation
20
Comparatif de cache
La comparaison des caractéristiques :
21
Comparatif de cache
Tableau de compatibilité :
22
Conclusion
APC
Facile à
installer Gain énorme
de vitesse
Facile à
utiliser Très utilisé
23
24
Merci de votre attention
- http://php.net/manual/fr/book.apc.php
- http://en.wikipedia.org/wiki/List_of_PHP_accelerators
- http://www.inmotionhosting.com/support/website/what-is/speed-up-php-with-apc
- http://www.ricardclau.com/2013/03/apc-vs-zend-optimizer-benchmarks-with-symfony2/
- http://forum.phalconphp.com/discussion/2594/opcached-php-frameworks-perform-
better-than-phalcon
- http://getgrav.org/blog/mac-os-x-apache-setup-mysql-vhost-apc
- http://blog.nicolashachet.com/gestion-de-caches/optimisation-web-php-des-caches-a-tous-les-niveaux/
- http://www.stephane-raymond.com/blog/webperf/caching-avance/
- http://www.woueb.net/2011/04/11/accelerateur-php-apc/
Sources
25