Optimisation LAMP

download Optimisation LAMP

If you can't read please download the document

description

Présentation de la conférence "Optimisation LAMP". Une formation donnée par Openska pour ceux qui veulent aller vite : http://www.openska.com/formation-optimisation-php.php

Transcript of Optimisation LAMP

  • 1. { Optimisation LAMP Comment amliorer les performances de votre application LAMP

2. { Optimisation LAMP Guillaume Plessis Fondateur de IG technologie Crateur du projet Dotdeb Cloud Computing raisonn, LAMP dbrid Cyril Pierre de Geyer Co-auteur de PHP 5 avanc Vice prsident de l'AFUP vangliste / Open Source Tirs de charge, scnarios de test, optimisation 3. { Architecture pour nos tests Instance Amazon EC2 c1.medium : 2 x 2,4GHz Intel Pentium 4 Xeon (32bits) 1,7Go de mmoire vive Stockage rseau Apache 2.2 + PHP 5.3.3 + MySQL 5.1.51 Drupal 6.19 4. { Comment optimiser 1. Savoir ce qui se passe 2. Analyser 3. Simuler 4. Amliorer 5. { 1. Savoir ce qui se passe : Fichiers journaux & debug Apache : Accs Amlioration des scnarios de tests Erreur Dtection des erreurs applicatives PHP : Erreur Dtection des erreurs applicatives Xdebug Profiling MySQL : Requtes lentes & sans indexes Journal des requtes Amlioration des scnarios de tests 6. { 1. Savoir ce qui se passe : Monitoring Monitoring Objectifs : disponibilit, stabilit Fournit des lments danalyse pour le profiling Dtecter les dysfonctionnements Anticiper le dimensionnement 7. { 1. Savoir ce qui se passe : Monitoring De nombreux outils existent : Nagios, Zabbix... Cacti, Munin... PHP : parent pauvre? Pinba, Zend Platform 8. { 1. Savoir ce qui se passe : Mtriques surveiller Les mtriques surveiller OS : CPU, RAM, rseau Apache : Requtes par seconde temps de rponse PHP : Pinba MySQL : Requtes par seconde connexions innodb_buffer_pool 9. { 2. Analyser Profiling Objectif : performance Environnement danalyse plus lourd (souvent inadapt la production), Dtecter les goulots d'tranglement Crez un environnement propice au profiling Attention aux cots en performances Outils : xdebug, KcacheGrind, webgrind, ZendServer Mercredi 9h : Deboguer son code Xdebug 10. { 3. Simuler Objectifs : Dtecter les goulots d'tranglements Qualifier une architecture Outils Jmeter, Funkload, Siege, ab Attention rejouer les tests dans le mme contexte! Tir de charge de rfrence 11. { 4. Amliorer : PHP Optimiser les Opcodes Script PHP Opcodes Excution Optimisation, r-ordonnancement Mise en cache (attention l'invalidation!) Outils : APC, Xcache, Zend Optimizer... Tir de charge aprs l'installation de APC Mercredi 15h45 : APC & Memcached the High Performance Duo 12. { 4. Amliorer : le serveur Web Configuration selon la machine disposition Apache : KeepAlive ServerLimit, MaxClients MaxRequestsPerChild PHP : un memory_limit raliste (2 Go Ram = max 16 scripts PHP 128Mo simultans) Tir de charge aprs optimisation de Apache 13. { 4. Amliorer : le serveur Web Autres pistes Utilisez mod_gzip / mod_deflate pour optimiser l'utilisation de CPU / bande passante Dsinstaller les modules non utiliss (java, python,...) Privilgier d'autres serveurs HTTP selon l'usage Nginx pour le contenu statique Utilisation d'un reverse-proxy cache HTTP Varnish 14. { 4. Amliorer : optimisations HTTP normment d'amliorations possibles Le but est toujours d'allger le serveur Apache Quelques pistes Compression Gzip en-ttes Expire Etags Mercredi 9h45 : Un site web performant, tout est dans le rseau et le navigateur 15. { 4. Amliorer : la base de donnes Choisir le bon systme (Linux : 2.6, 64 bits) Choisir la bonne distribution de MySQL Choisir le bon moteur de stockage MyISAM, InnoDB / XtraDB, HEAP, Archives... Optimisation des requtes et du modle (via logs) Rplication (arbre matre-esclave, matre-matre) Sharding 16. { 4. Amliorer : l'architecture Scalabilit Verticale : augmentation de la puissance du serveur Horizontale : augmentation du nombre de serveurs Ouverture vers le Cloud Mercredi 11h00 : Le cloud computing pour PHP 17. { 4. Amliorer : exemple d'architecture 18. { Questions? [email protected] w_a_s_t_e [email protected] cyrilpdg Cycle optimisation Retour d'exprience de Weka maintenant Xdebug Demain 9h Un site web performant, tout est dans le rseau et le navigateur Demain 9h45 Le cloud computing pour PHP Demain 11h Le paradoxe des performances de PHP Demain 14h45 APC & Memcached the High Performance Duo Demain 15h45 Rfrences et remerciements : wikipedia, milamber, oxalide, elroubio, dotdeb, l'afup, les quipes de PHP, de MySQL, d'Apache, au monde de l'OpenSource.