Cache PHP alternatif

Transcription

Cache PHP alternatif
APC
Cache PHP alternatif
Présenté par : MASLINE-CAMERINI Antoine
1
Plan de la présentation
- Pré requis à connaître
- Introduction
- Principe de fonctionnement
- Installation
- Utilisation
- Comparatif
- Conclusion
2
Pré requis à connaitre
- Php : Langage utilisé pour produire des sites web dynamique.
HTTP
Connexion PHP
POST/GET
Requêtes SQL
HTML
PHP
Pages HTML
Client
Navigateur web
$Résultat
Serveur
d ’applications
Serveur de bases de
données
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
Introduction
Signification d’APC ?
-> Alternative PHP Cache
But ?
-> Accélérer la génération de scripts PHP.
6
Principe de fonctionnement
Script PHP
Parsing PHP
Compile
Cache OpCode
« APC »
Execute
Page HTML
Output
7
Principe de fonctionnement
Benchmark avec Firebug
APC sur Symphony 2.4
SANS APC
AVEC APC
8
Installation
- 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é.
9
Installation (1/3)
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
10
Installation (2/3)
Pour php < 5.5
Ligne à ajouter
11
Installation (3/3)
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
12
Utilisation
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é.
13
Utilisation
Exemple d’utilisation :
14
Utilisation
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)
15
Utilisation
Benchmark avec Apache-Benchmark
Sans l’utilisation d’un cache
16
Utilisation
Benchmark avec Apache-Benchmark
Avec l’utilisation d’un cache fichier
17
Utilisation
Benchmark avec Apache-Benchmark
Avec l’utilisation d’APC
18
Utilisation
- 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.
19
Utilisation
Exemple d’utilisation :
20
Comparatif de cache
La comparaison des caractéristiques :
21
Comparatif de cache
Tableau de compatibilité :
22
Conclusion
Facile à
installer
Gain énorme
de vitesse
APC
Très utilisé
Facile à
utiliser
23
Merci de votre attention
24
Sources
- 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-performbetter-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-atous-les-niveaux/
- http://www.stephane-raymond.com/blog/webperf/caching-avance/
- http://www.woueb.net/2011/04/11/accelerateur-php-apc/
25