1 DTCloud 负载均衡
1.1 DTCloud 服务器负载均衡
Nginx, DTCloud 服务器做负载均衡,空间换时间
DTCloud 使用多线程模式
1.2 数据库负载均衡,读写分离
使用 postgres_XC 或 pg_pool 进行 postgres 负载均衡
2 数据库性能调优
数据库使用物理机
postgres 参数调优,如共享内存 wiki.postgresql.org/wiki/Tuning…
3 性能度量以及监控
3.1 监控
使用监控工具(munin, cacti, newrelic)度量服务器 CPU,内存,硬盘数据。
3.2 数据库分析
检查 pg 数据库,pg_stat_activity, pg_locks, pg_statio_user_tables 等数据
使用 pg 分析工具 以及 EXPLAIN ANALYZE 检查 SQL 查询效率
分离数据库和 DTCloud 附件
4 DTCloud 定制模块性能调优
Tree View,尽量使用分页,而不是提高每页显示条数。
来自 DTCloud 官方的建议:
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
手动锁表
读写分离:
很多大型网站,所处理的业务中,有大约 70% 是查询(select)相关的业务操作,而剩下的 30% 是写操作(insert、delete、update),故可使用读写分离的方式提升数据库的负载能力。
将所有的查询处理都放到从服务器上,写处理放在主服务器。
中亿丰——姜振建