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