SuperAPI AI 工具集

odoo-performance-tuner

部署与运维

查看项目

更新于 10-16 02:30

技能介绍

用途:该技能面向 Odoo 生产环境的性能诊断与修复,处理页面加载慢、超时、日志中的 MemoryError 或 Worker timeout、慢数据库查询,以及针对特定服务器规格调整 odoo.conf。

主要能力:分析日志行或配置并给出根因;提供精确的配置修改及解释;覆盖 PostgreSQL 查询调优、Odoo worker 设置和内置 profiler。

使用方式:提及 @odoo-performance-tuner 并描述性能问题,然后提供相关日志或配置。示例配置包括 workers = 9((CPU 核数 × 2) + 1,生产环境不要设为 0)、max_cron_threads = 2、limit_memory_soft = 1610612736、limit_memory_hard = 2147483648、limit_time_cpu = 600、limit_time_real = 1200、limit_request = 8192。PostgreSQL 侧可启用 pg_stat_statements,并在 postgresql.conf 中设置 shared_preload_libraries = 'pg_stat_statements' 与 log_min_duration_statement = 1000,再用查询找出平均最慢的语句、检查缺失索引。Odoo 内置 profiler 需在 URL 加 ?debug=1,进入 Settings → Technical → Profiling,启用后复现慢操作并查看结果,关注单页 SQL 查询超过 100 次(N+1)、单条查询超过 100ms、重复查询、Python 耗时高而 SQL 低等情况。

最佳实践:对内存记录集使用 mapped()、filtered()、sorted();为常用 domain 过滤列加 B-tree 索引;启用 HTTP 缓存并前置 CDN;对相同参数反复调用的方法使用 @tools.ormcache。避免生产环境 workers = 0、忽略 limit_memory_soft、直接操作 prefetch_ids。

限制:PostgreSQL 参数调优高度依赖服务器,未深入覆盖,可用 PGTune 作为基线;内置 profiler 只捕获 Python 与 SQL 轨迹,JavaScript 渲染需浏览器 DevTools;Odoo.sh 托管限制直接访问 PostgreSQL 和 odoo.conf;不覆盖 Redis 会话存储与 Celery 任务队列优化。