Optimisation des performances
Les paramètres de performance aident à optimiser Chamilo pour des chargements de pages plus rapides et une meilleure utilisation des ressources, en particulier sur les plateformes avec de nombreux utilisateurs simultanés.
Référence complémentaire : Votre installation Chamilo inclut un guide d’optimisation étendu. Ouvrez
/documentation/optimization.htmldans un navigateur (par ex.https://your-chamilo-site/documentation/optimization.html) pour des recommandations au niveau serveur spécifiques à votre version.
Cache Symfony
Chamilo 3.0 est construit sur Symfony, qui utilise un cache compilé pour le routage, l’injection de dépendances et les templates. La gestion de ce cache est essentielle pour les performances.
Vider le cache
Après des modifications de configuration, un déploiement ou des mises à niveau, videz le cache Symfony :
# Clear cache for the current environment
php bin/console cache:clear
# For production environments specifically
php bin/console cache:clear --env=prodEn production, assurez-vous toujours que APP_ENV=prod est défini dans votre fichier .env.local. L’environnement de développement (APP_ENV=dev) inclut une surcharge importante de débogage et ne doit jamais être utilisé en production.
Préchauffage du cache
Après avoir vidé le cache, préchauffez-le pour précompiler les templates et la configuration :
php bin/console cache:warmup --env=prodStratégies de cache
OPcache
Cache d’opcodes intégré de PHP. Assurez-vous qu’il est activé dans votre php.ini avec une mémoire suffisante (opcache.memory_consumption=256). Il s’agit de l’optimisation de performance la plus impactante.
APCu
Cache clé-valeur en mémoire utilisé par Symfony pour stocker les métadonnées. Installez l’extension PHP APCu et configurez-la dans la configuration de cache Symfony.
Redis / Memcached
Pour les plateformes à fort trafic, configurez un backend de cache externe. Définissez l’adaptateur de cache dans config/packages/cache.yaml.
Paramètres OPcache recommandés
Lorsque validate_timestamps est défini à 0, vous devez vider OPcache après le déploiement de nouveau code (redémarrer PHP-FPM ou appeler opcache_reset()).
Chargement différé
Lazy-load images
Active l’attribut loading="lazy" sur les images afin que les images hors écran ne se chargent que lorsqu’elles défilent dans la vue. Réduit le temps de chargement initial de la page.
Deferred JavaScript loading
Charge les fichiers JavaScript non critiques de manière asynchrone pour éviter de bloquer le rendu de la page.
CDN (Content Delivery Network)
Pour les plateformes servant des utilisateurs dans plusieurs régions géographiques, un CDN peut améliorer significativement les temps de chargement des ressources statiques (CSS, JavaScript, images).
Pour configurer un CDN :
Mettez en place une distribution CDN (par ex. CloudFront, Cloudflare ou un autre fournisseur) pointant vers votre serveur Chamilo.
Configurez l’URL de base des assets dans votre environnement ou la configuration Symfony afin que les ressources statiques soient servies via le CDN.
Définissez des en-têtes de cache appropriés pour les fichiers statiques (expiration longue pour les assets versionnés).
Optimisation de la base de données
Use database connection pooling
Pour les plateformes à forte concurrence, configurez le pooling de connexions afin de réduire le coût d’établissement des connexions à la base de données.
Optimize queries
Chamilo inclut des index de base de données pour les requêtes courantes. Exécutez ANALYZE TABLE périodiquement sur MySQL/MariaDB pour maintenir à jour les statistiques du planificateur de requêtes.
Separate database server
Pour les grandes installations, exécutez la base de données sur un serveur dédié plutôt que de partager les ressources avec le serveur web.
Configuration du serveur web
Enable gzip/brotli compression
Compressez les réponses HTML, CSS et JavaScript. La plupart des serveurs web le prennent en charge nativement.
Static file caching
Définissez de longs en-têtes Cache-Control et Expires pour les ressources statiques.
PHP-FPM tuning
Ajustez pm.max_children, pm.start_servers et pm.max_requests en fonction de la RAM disponible et de la concurrence attendue.
HTTP/2
Activez HTTP/2 dans votre serveur web pour des connexions multiplexées et la compression des en-têtes.
Conseils
OPcache est le gain le plus important -- Assurez-vous qu’il est activé et correctement dimensionné avant d’envisager d’autres optimisations.
Ne jamais exécuter la production avec
APP_ENV=dev-- La barre de débogage et le profiler ajoutent une surcharge importante à chaque requête.Surveiller avant d’optimiser -- Utilisez des outils comme New Relic, Blackfire ou le profiler intégré de Symfony (en mode dev) pour identifier les goulets d’étranglement réels plutôt que de deviner.
Préchauffez le cache après chaque déploiement afin d’éviter que le premier utilisateur ne rencontre une requête lente non mise en cache.
Mis à jour
Ce contenu vous a-t-il été utile ?