Your SlideShare is downloading. ×
Drupal Performance
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

Drupal Performance

5,488
views

Published on

P

P

Published in: Technology

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
5,488
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
16
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. La Communauté Drupal 1000 cerveaux sont bien plus puissants qu‟un seul Les fonctionnalités que nous cherchons existent déjà! Ne réinventons pas la roue! Il ya des développeurs Drupal qui sont des génies! Profitons de leur expérience!
  • 2. Le problème Drupal est gourmand. L‟affichage d‟une simple page peut parfois engendrer l‟exécution de 50 voir 150 requêtes à la DB Imaginez vous cette même page appelée par plusieurs internautes en même temps. On obtient alors des centaines de requêtes et informations recalculées inutilement qui vont solliciter les serveurs et vont ainsi consommer du CPU et de la RAM
  • 3. Performance, rendement Vs Evolutivité  Evolutivité (Scalability)  Capacité à faire face à une augmentation des utilisateurs et des données  Rendement (Performance)  Temps de réponse du serveur + temps de chargement de la page  Notre approche aujourd‟hui  Améliorer le temps de réponse de notre application Drupal pour des utilisateurs non identifiés
  • 4. Ce que nous ne verrons pas Front end performance Back end performance  Reverseproxy avec Varnish  Apache mod_deflate  APC  Memcache  Cache router  Authcache  Query cache
  • 5. Alors? Qu’allons nous voir? Principes de caching Evaluer le rendement avec AB et Devel Le cache du cœur de Drupal Gestion du cache: Cache browser Gestion du cache: Content Refresh
  • 6. Principes du Caching Eviter de répéter une même opération en gardant le résultat Ex.: Calculer 2+3,  Écrire le résultat sur un papier (cacher dans la BD)  Mémoriser le résultat (cacher en mémoire)
  • 7. Qu’allons nous mettre dans le cache pour des utilisateurs non identifiés? Des pages, des pages et rien que des pages…  Nous oublions les views, les bloques…
  • 8. Comment évaluer la preformance? Nous ne pouvons pas mettre en place des politiques de performances sans une évaluation des ces dernières Evaluer avec Apache Bench (AB)  Facil, simple et nous l‟avons tous installé par défaut Evaluer avec Devel  Pluscomplexe, non compatible avec le cache agressif de Drupal, utile si nous n‟avons pas accès a la shell du serveur
  • 9. Apache Bench (AB) AB test pour un utilisateur non identifié  ab -c 1 -n 100 http://example.dev/  Où  -c = concurrence des requêtes  -n = total des requêtes vers la page  Dans notre cas nous allons faire 100 requêtes vers la home page http://example.dev/ Un seul indicateur: „Requests per second‟  Le nombre de requêtes (vers notre home page) que notre serveur peut “servir” en une seconde. C‟est avec cet indicateur que nous allons évaluer nos différentes politiques de performance. Plus il sera élevé, plus notre application sera performante.
  • 10. Evaluer avec Devel Télécharger le module devel: http://drupal.org/project/devel Habiliter la composante: Performance Logging Configurer dans admin/settings/performance_logging  Detailed logging: Enabled
  • 11. Faisons une première évaluation Con AB Con Devel
  • 12. El caché del Core de Drupal Le système de cache de Drupal enregistre les données dans las tables suivantes: Par défaut Configurable 1. cache – enregistre une copie de la 1. cache_page – enregistre une configuration de nos modules, de la copie des pages mais structure de toutes nos autres tables seulement pour les utilisateurs et toutes les informations concernant non identifiés le thème utilisé sur le site 2. cache_block – enregistre une 2. cache_menu – enregistre une copie copie des bloques du menu de navigation et des URLs qui lui sont associées 3. cache_filter – une copie de tous les contenus une fois qu‟ils ont été filtrés par le système de filtre 4. cache_form – enregistre tous les formulaires soumis à la FormApi
  • 13. Activer le cache du coeur de Drupal Nous allons sur admin/settings/performance Cache des pages  Mode de cache: Normal ou agressif  Durée de vie minimale de la mémoire cache: 3 heures  Compression des pages: Activé  Pour savoir si notre serveur réalize déjà la compression: http://www.whatsmyip.org/http_compression/ Cache des bloques  Pas besion pour le moment car nous travaillons qu‟avec les utilisateurs non identifiés
  • 14. Activer le cache du coeur de Drupal Optimisation de la bande-passante  Optimise les fichiers CSS: Activé(en production)  Optimise les fichiers Javascript: Activé(en production) Sauver la configuration Maintenant nous pouvons voir comment la table cache_page commence à se remplir Tester à nouveau avec AB ou Devel
  • 15. Gestion du cache: Cache Browser Cache Browser  http://drupal.org/project/cache_browser  Nous avons aussi besion du module http://drupal.org/project/format_number  Nous permet de vider le cache de chaque table ou plus finement d‟un registre d‟une table. De cette manière nous ne devons pas vider le cache dans son entier.  Nous permet de voir le contenu de chaque registre et ainsi voir comment une page est cachée.
  • 16. Gestion du cache: Content Refresh Content Refresh  http://drupal.org/project/content_refresh  Hypothèse: Les utilisateurs non identifiés peuvent laisser des commentaires et le cache du coeur est activé.  Sans Content Refresh, ils ne voient pas leur nouveau commentaire !  Avec Content Refresh oui!  Quand il y a un nouveau commentaire, le cache de cette page est éliminé y donc l‟utilisateur anonyme voir son nouveau commentaire.  Quand on enregistre un nouveau node, le cache de la home page est éliminé  Voir la configuration sur admin/content/content-refresh
  • 17. En résumé La statégie de performance pour les utilisateurs non identifíes se base sur:  Activé le cache u cœur de Drupal seulement pour les pages  Administrer le cache avec  Cache Browser (administration)  Content refresh (expiration) Reste à voir dans ce cadre  Les modules Cache Actions et Boost