來自:http://blog.lin-yu.net/2015/08/31/odoo_peformance_finetuning.html
1 Odoo負載均衡
1.1 Odoo服務器負載均衡
- Nginx, odoo服務器做負載均衡,空間換時間
- odoo使用多線程模式
1.2數據庫負載均衡,讀寫分離
使用postgres_XC或pg_pool進行postgres負載均衡
2 數據庫性能調優
- 數據庫使用物理機
- postgres參數調優,如共享內存http://wiki.postgresql.org/wiki/Tuning_Your_PostgreSQL_Server
3性能度量以及監控
3.1監控
使用監控工具(munin, cacti, newrelic)度量服務器 cpu,內存,硬盤數據。
3.2 數據庫分析
- 檢查pg數據庫,pg_stat_activity, pg_locks, pg_statio_user_tables等數據
- 使用pg分析工具 以及 EXPLAIN ANALYZE檢查sql查詢效率
- 分離數據庫和odoo附件
4 Odoo定製模塊性能調優
- Tree View,儘量使用分頁,而不是提高每頁顯示條數。
來自odoo官方的建議:
- Stored computed fields觸發太多: 增加觸發條件限制,避免無謂存儲。
- 避免在主數據 (product, location, user, company)上增加計算類字段
- 搜索 Domain不合理 -多表搜索,效率非常低
- 舉例 ([(‘sale _id.order_lines.product_id ‘,’!=’, False)])
- 業務邏輯重寫在 create(), write()函數中。性能會降低 因爲這些函數會被反覆高頻調用。
- 避免重寫 sale order line, stock move的 這些函數 避免在主數據 (product, location, user, company)的這些函數
- 誤用批量(Batch)API - browse, write 等函數已經支持batch
- 手動鎖表