Optimisation des Performances
Conseils pour accélérer FeedbackPulse SaaS à mesure que vous montez en charge.
Gains rapides
1. Mise en cache de la configuration
php artisan config:cache # Mettre en cache .env et les fichiers de configuration
php artisan route:cache # Mettre en cache les routes
php artisan view:cache # Pré-compiler les vues Blade
Exécutez ces commandes après chaque déploiement. Videz avec
php artisan optimize:clear.
2. Utiliser Redis pour le cache et les sessions
Redis est nettement plus rapide que le cache fichier ou base de données :
sudo apt install redis-server php8.4-redis
CACHE_STORE=redis
SESSION_DRIVER=redis
QUEUE_CONNECTION=redis
3. Utiliser la file d'attente base de données (minimum)
QUEUE_CONNECTION=database
Exécutez un worker de file d'attente via Supervisor pour traiter les tâches en arrière-plan plutôt qu'en ligne.
4. Activer OPcache
; /etc/php/8.4/fpm/conf.d/10-opcache.ini
opcache.enable=1
opcache.memory_consumption=256
opcache.max_accelerated_files=20000
opcache.validate_timestamps=0 ; Désactiver en production
Optimisation de la base de données
Ajouter des index
FeedbackPulse est livré avec des index appropriés, mais si vous exécutez de grandes requêtes, vérifiez :
-- Vérifier les requêtes lentes
SET GLOBAL slow_query_log = 'ON';
SET GLOBAL long_query_time = 2;
Réglage MySQL
innodb_buffer_pool_size = 1G # 50-70% de la RAM disponible
innodb_log_file_size = 256M
max_connections = 200
innodb_flush_log_at_trx_commit = 2 # Léger compromis durabilité/vitesse
Optimisation du serveur web
Nginx : Activer Gzip
gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml;
gzip_min_length 256;
gzip_vary on;
Mise en cache des fichiers statiques
location ~* \.(jpg|jpeg|png|gif|ico|css|js|svg|woff|woff2)$ {
expires 30d;
add_header Cache-Control "public, immutable";
}
Réglage PHP-FPM
pm = dynamic
pm.max_children = 20 # Ajustez selon la RAM
pm.start_servers = 5
pm.min_spare_servers = 3
pm.max_spare_servers = 10
pm.max_requests = 500 # Prévenir les fuites mémoire
Recommandations de montée en charge
| Locataires | Configuration recommandée |
|---|---|
| 1-50 | VPS unique, cache fichier, file synchrone |
| 50-200 | VPS unique, cache Redis, file base de données avec Supervisor |
| 200-1 000 | Serveur dédié, cache+file Redis, réglage MySQL |
| 1 000+ | Équilibreur de charge, serveur DB séparé, cluster Redis, plusieurs workers de file |
Surveillance
# Vérifier le statut PHP-FPM
sudo systemctl status php8.4-fpm
# Vérifier la liste des processus MySQL
mysqladmin processlist
# Vérifier l'espace disque
df -h
# Vérifier l'utilisation mémoire
free -m
# Vérifier les journaux Laravel pour les erreurs
tail -f storage/logs/laravel.log