« Odoo est lent » est un diagnostic, pas un symptôme. Le réflexe habituel — augmenter le gabarit du serveur — règle parfois le problème, et masque presque toujours sa cause.
Voici les cinq causes que nous rencontrons réellement, dans l'ordre de fréquence, avec le test qui permet de les distinguer.
L'essentiel
- Cause n° 1 : une vue liste avec trop de colonnes calculées, ouverte sans filtre par défaut.
- Cause n° 2 : un champ calculé non stocké, recalculé à chaque affichage de chaque ligne.
- Cause n° 3 : un module communautaire qui ajoute un traitement à chaque écriture.
- Cause n° 4 : des pièces jointes jamais purgées, qui gonflent la base et les sauvegardes.
- Cause n° 5 : les ressources serveur — la dernière à examiner, pas la première.
Le test qui oriente le diagnostic en deux minutes
Avant toute analyse technique, une question : est-ce lent partout, ou à un endroit précis ?
| Observation | Cause probable |
|---|---|
| Un seul écran est lent | Vue surchargée ou champ calculé (causes 1 et 2) |
| Toute sauvegarde d'un document est lente | Module avec traitement à l'écriture (cause 3) |
| Tout est lent, tout le temps | Volume ou ressources (causes 4 et 5) |
| Lent seulement à certaines heures | Tâches planifiées concurrentes, ou sauvegarde |
| Lent pour une personne seulement | Réseau ou navigateur, pas le serveur |
La dernière ligne évite beaucoup de travail inutile : une lenteur qui ne touche qu'un poste n'est pas une lenteur d'Odoo. Vérifiez-la avant d'ouvrir une analyse serveur.
Causes 1 et 2 : la vue et le champ calculé
C'est, de loin, la cause la plus fréquente, et la moins coûteuse à corriger. Une vue liste qui affiche huit colonnes dont trois sont calculées, ouverte sur l'intégralité des enregistrements, demande au serveur de calculer trois valeurs pour chaque ligne affichée.
Multiplié par le nombre de lignes et par le nombre d'utilisateurs qui ouvrent cet écran chaque matin, l'effet est considérable.
- Mettez un filtre par défaut sur les vues les plus ouvertes : l'année en cours, les documents non clôturés, mon équipe. Personne n'a besoin de voir 40 000 lignes.
- Retirez les colonnes calculées des vues liste, et laissez-les sur la fiche. On les consulte rarement en liste.
- Vérifiez si le champ calculé peut être stocké. Un champ calculé et stocké se recalcule à l'écriture, pas à la lecture — c'est le même résultat pour un coût radicalement différent.
Le troisième point est un arbitrage technique à confier à votre prestataire, mais il faut savoir qu'il existe : beaucoup de lenteurs attribuées au « poids de la base » viennent d'un champ non stocké.
Cause 3 : le module communautaire coûteux
Un module peut ajouter un traitement à chaque création ou modification d'un document : un contrôle, un recalcul, une écriture dans un journal, une notification.
Chacun est légitime. Dix empilés sur la même opération rendent la validation d'une facture perceptiblement lente, et aucun n'est fautif isolément.
Le symptôme caractéristique : tout est rapide, sauf enregistrer. Si l'affichage est fluide et que la sauvegarde prend trois secondes, cherchez de ce côté avant d'incriminer le serveur. C'est l'une des raisons pour lesquelles nous assemblons des packs testés ensemble plutôt que d'empiler des modules à la demande. Voir comment choisir un module communautaire.
Cause 4 : les pièces jointes, angle mort du volume
On surveille le nombre d'écritures comptables ; on ne surveille jamais les pièces jointes. Pourtant, ce sont elles qui font le volume : devis en PDF, justificatifs de frais, photos de chantier, rapports d'intervention.
Les effets sont doubles, et le second est le plus gênant :
- La base grossit, les sauvegardes s'allongent, les restaurations aussi — donc votre délai réel de reprise après incident augmente sans que personne ne l'ait décidé.
- Les écrans qui listent des documents avec leur aperçu ralentissent.
Deux gestes utiles : purger les pièces jointes des documents annulés ou brouillons anciens, et fixer une politique de rétention des journaux techniques. À titre d'exemple, les modules de facturation électronique purgent leurs propres journaux au bout de 600 jours par défaut — un paramètre réglable, et un bon ordre de grandeur. Voir l'archivage et les durées de conservation.
Cause 5 : les ressources, enfin
Elles existent, et elles sont parfois la vraie cause — typiquement après une croissance du nombre d'utilisateurs simultanés, ou l'arrivée d'une activité de caisse.
Mais il faut les examiner en dernier, pour une raison simple : ajouter du serveur sur une cause 1, 2 ou 3 la rend supportable, pas absente. Elle réapparaîtra au prochain palier de volume, et vous paierez deux fois.
Doubler le serveur pour compenser une vue mal filtrée, c'est acheter du temps au prix d'un abonnement permanent.
Dans nos offres, le gabarit est dimensionné pour une PME ; si l'usage simultané croît fortement, c'est un ajustement de ressources — une question de dimensionnement, pas de licence, puisque Odoo Community n'a pas de coût par utilisateur. Voir où héberger Odoo.
Les tâches planifiées, cause invisible des lenteurs horaires
Un cas particulier qui mérite sa section : une lenteur qui apparaît à heure fixe. Ce n'est presque jamais l'usage, c'est une tâche planifiée.
Sauvegarde, import de factures électroniques entrantes, envoi des flux sortants, relances automatiques, recalculs de stock : chacune est utile, et elles sont souvent programmées à la même heure ronde par commodité.
La correction est gratuite : étalez-les. Un import à 6 h 10, un envoi à 6 h 40, une sauvegarde à 2 h. Personne n'a besoin que tout se produise à 6 h 00.
Questions fréquentes
Faut-il augmenter le serveur quand Odoo est lent ?
En dernier recours. Dans la majorité des cas que nous traitons, la cause est une vue surchargée, un champ calculé non stocké, un module coûteux à l'écriture ou un volume de pièces jointes jamais purgé. Ajouter du serveur rend ces causes supportables sans les supprimer, et elles reviennent au palier suivant.
Comment savoir si c'est le serveur ou l'application ?
Par la localisation du symptôme : un seul écran lent désigne une vue ou un champ calculé ; une sauvegarde lente désigne un module ; une lenteur générale et constante désigne le volume ou les ressources ; une lenteur à heure fixe désigne les tâches planifiées. Et une lenteur sur un seul poste désigne le réseau ou le navigateur.
Combien d'utilisateurs simultanés une instance supporte-t-elle ?
Cela dépend du gabarit et surtout de la nature de l'usage : vingt personnes qui consultent ne pèsent pas comme cinq caisses qui enregistrent. Le bon réflexe est de mesurer l'usage simultané réel plutôt que de compter les comptes utilisateurs, qui sont souvent trois fois plus nombreux.
Les pièces jointes doivent-elles être purgées ?
Celles des documents annulés ou restés en brouillon depuis longtemps, oui — elles alourdissent la base, les sauvegardes et donc votre délai de reprise après incident. En revanche, les pièces justificatives attachées à des documents comptables relèvent de la conservation légale et ne se purgent pas.
Une base de plusieurs gigaoctets est-elle anormale ?
Non, pas en soi. Ce qui compte est la répartition : si l'essentiel du volume vient des pièces jointes, c'est normal et gérable. Si l'essentiel vient de journaux techniques jamais purgés, c'est un paramètre de rétention à régler, et le gain est immédiat.
Pour aller plus loin
- Où héberger Odoo : qui porte quoi
- Sauvegardes et plan de reprise : les trois chiffres
- Comment choisir un module communautaire
En résumé
Localisez le symptôme avant d'ouvrir le portefeuille : un écran lent désigne une vue, une sauvegarde lente désigne un module, une lenteur horaire désigne les tâches planifiées. Les ressources viennent en cinquième position — et les traiter en premier revient à louer une compensation permanente. Faisons le diagnostic.