Contexte rapide
Vous êtes en production et certaines pages d'Odoo mettent plusieurs secondes (voire dizaines de secondes) à s'afficher. Pas de panique : ce tutoriel pas à pas vous guide pour diagnostiquer et corriger une instance lente, avec des actions concrètes et vérifiables.
Pré requis
- Accès SSH au serveur (ou accès au support cloud qui gère le serveur).
- Accès administrateur Odoo (pour désactiver module ou activer le mode développeur).
- Accès à la base PostgreSQL ou à la personne qui gère la base.
- Sauvegarde récente de la base et des fichiers (toujours utile avant modification).
Étapes pas à pas
- Mesurer d'abord : ouvrez l'onglet Réseau de votre navigateur et notez les temps de chargement (XHR, templates). Exemple concret : la fiche produit prend 12s, le JSON de recherche 9s.
- Regarder les logs : sur le serveur, consultez les logs Odoo pour les requêtes lentes (par ex. /var/log/odoo/odoo-server.log). Cherchez « longpoll », « SQL » ou des erreurs. Exemple : une route montre régulièrement « 8.2s ».
- Isoler la cause : mettez l'utilisateur en mode développeur et rechargez la page ; regardez les opérations Python/SQL affichées. Pour tester un module suspect, désactivez-le temporairement (ou passez en mode « maintenance ») et comparez les temps.
- Vérifier les requêtes SQL lentes : demandez au DBA d'activer le slow_query_log PostgreSQL ou lancez EXPLAIN sur la requête identifiée. Exemple d'action : ajouter un index sur une colonne souvent filtrée (par ex. partner_id dans une table custom).
- Corriger le code personnalisé : recherche d'un pattern « n+1 » (boucles qui lancent des recherches répétées). Solution simple : lire en batch (browse avec mapped/filtered) pour réduire les requêtes.
- Vérifier les crons et imports : un cron gourmand peut dégrader la réactivité. Désactivez temporairement les tâches planifiées suspectes et observez.
- Analyser ressources serveur : vérifiez CPU, RAM, I/O. Si PostgreSQL swappe ou le disque est saturé, le gain viendra d'une montée en ressources ou d'un tuning (shared_buffers, maintenance_work_mem) — faites-le avec votre DBA.
- Redémarrer proprement : après correction (index, mise à jour de module), redémarrez le service Odoo et vérifiez à chaud. N'oubliez pas de vider le cache des navigateurs pour un test propre.
Erreurs fréquentes
- Modifier la production sans sauvegarde : risque de perdre des données ou de casser la logique métier.
- Ajouter des indexes aveuglément : un index mal choisi alourdit INSERT/UPDATE.
- Réduire les workers sans comprendre la charge : peut rendre le système moins réactif pour les requêtes web.
- Tester seulement côté serveur : parfois le goulot est côté client (JS lourd, assets mal concaténés).
Vérification finale
- Comparer les temps avant/après avec l'onglet Réseau et des utilisateurs réels.
- Vérifier l'absence de nouvelles erreurs dans les logs pendant 24–48h.
- Confirmer que les crons critiques tournent normalement et que les imports ne sont plus impactés.
Si après ces étapes vous avez identifié la cause mais manquez de temps ou d'expertise pour appliquer la correction en toute sécurité, je peux vous aider. Réservez un diagnostic Odoo ou contactez-moi pour discuter de votre projet sans obligation : /rendez-vous.