Odoo kan vara snabbt. Det kan också vara fruktansvärt långsamt. Skillnaden handlar om konfiguration, infrastruktur och hur koden är skriven. Här är de vanligaste flaskhalsarna och hur du åtgärdar dem.
Workers
I odoo.conf: workers = 4 (eller fler, beroende på CPU-kärnor). Utan workers kör Odoo singletrådat och kan bara hantera en request åt gången. Tumregel: antal CPU-kärnor gånger 2 plus 1. En longpolling-worker behövs separat.
PostgreSQL-optimering
Standardkonfigurationen i PostgreSQL är dimensionerad för en laptop, inte en produktionsserver. Justera: shared_buffers (25% av RAM), effective_cache_size (75% av RAM), work_mem (4 till 16 MB beroende på queries), maintenance_work_mem. PGTune-verktyget ger förslag baserat på din server.
Index
Saknade index är den vanligaste orsaken till långsamma anrop. EXPLAIN ANALYZE på långsamma queries visar om en sequential scan sker där ett index borde finnas. Custom-moduler som lägger till fält som filtreras på bör ha index=True på fältet.
Caching
Odoo cachar QWeb-templates, assets (CSS/JS) och metadata. I produktion: --db-filter för att begränsa till en databas (minskar minnesanvändning). Nginx framför med caching av statiska filer. CDN för bilder och assets.
Minnesläckor
limit_memory_hard och limit_memory_soft i odoo.conf. Workers som överskrider hard-gränsen dödas och startas om. Utan dessa inställningar kan en enskild worker äta allt tillgängligt minne. Sätt soft till 640 MB och hard till 768 MB som utgångspunkt.
Mät
Logga långsamma queries: log_min_duration_statement = 100 i postgresql.conf visar alla queries som tar över 100 ms. Odoo-loggen med --log-level=debug för RPC-anrop visar vilka metoder som tar tid.