# Odoo Performance Audit Checklist

Systematically review production Odoo performance across infrastructure, database, application, and integration layers.

---

## 1. Baseline & User Impact

- [ ] Critical user flows identified (login, SO confirm, invoice post, picking validate, report run)
- [ ] Baseline response times recorded under normal business load
- [ ] Peak load periods identified (month-end, batch imports, promotion events)
- [ ] User-reported pain points collected and prioritized
- [ ] SLA or acceptable response time targets defined

**Baseline results**

| Flow | Target (sec) | Measured (sec) | Pass/Fail |
|------|--------------|----------------|-----------|
|      |              |                |           |
|      |              |                |           |

## 2. Infrastructure & Workers

- [ ] Server CPU, memory, and disk utilization reviewed under load
- [ ] Odoo worker count aligned with concurrent user count
- [ ] Longpolling / bus worker configured for real-time features
- [ ] Cron worker separated from HTTP workers if heavy scheduled jobs exist
- [ ] Reverse proxy (nginx) timeouts and buffering settings reviewed
- [ ] SSL termination and HTTP/2 configuration validated
- [ ] Filestore on adequate storage with I/O headroom

## 3. PostgreSQL Database

- [ ] Database size and table bloat assessed
- [ ] Slow query log or pg_stat_statements reviewed for top offenders
- [ ] Missing indexes identified on frequently filtered or joined columns
- [ ] Vacuum and autovacuum settings appropriate for write volume
- [ ] Connection pool size not exceeding PostgreSQL max_connections
- [ ] Lock waits and deadlocks investigated during peak periods
- [ ] Archival strategy for mail_message and attachment growth defined

## 4. Application Layer

- [ ] Custom code profiled for N+1 queries and unnecessary loops
- [ ] Computed fields and stored fields reviewed for recompute cost
- [ ] Heavy reports identified; scheduled off-peak where possible
- [ ] Record rules and domain filters optimized on large models
- [ ] Onchange and constraint methods audited for expensive operations
- [ ] Unused or deprecated modules disabled to reduce load

## 5. Scheduled Jobs & Queues

- [ ] All cron jobs inventoried with frequency and average duration
- [ ] Overlapping or redundant cron jobs identified
- [ ] Queue job backlog monitored (depth, age, failure rate)
- [ ] Failed jobs reviewed and retry policy validated
- [ ] Long-running jobs moved to dedicated workers or off-peak windows
- [ ] Integration sync jobs throttled to respect API rate limits

## 6. Caching & Assets

- [ ] Odoo asset bundles minified and cached in production
- [ ] CDN or static asset caching configured for website if applicable
- [ ] ORM cache and Redis/session store evaluated if used
- [ ] Browser caching headers set appropriately for static resources
- [ ] Unnecessary debug mode and developer assets disabled in production

## 7. Integrations & API Load

- [ ] External API call volume and latency measured
- [ ] Webhook bursts identified and queue-backed where needed
- [ ] XML-RPC / JSON-RPC usage reviewed for bulk operations
- [ ] Rate limiting configured on public endpoints
- [ ] Third-party BI tools not hammering primary database without limits

## 8. Monitoring & Alerting

- [ ] Application error logging centralized and searchable
- [ ] Uptime monitoring on critical endpoints configured
- [ ] Alerts defined for high CPU, memory, disk, and queue depth
- [ ] Database connection and lock wait alerts configured
- [ ] On-call escalation path documented
- [ ] Monthly performance review cadence scheduled

---

## Findings & Action Plan

| Finding | Severity (H/M/L) | Owner | Target Fix Date | Status |
|---------|------------------|-------|-----------------|--------|
|         |                  |       |                 | [ ]    |
|         |                  |       |                 | [ ]    |
|         |                  |       |                 | [ ]    |
