DTCloud性能调优及读写分离

150 阅读1分钟

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

手动锁表

读写分离:

image.png 很多大型网站,所处理的业务中,有大约 70% 是查询(select)相关的业务操作,而剩下的 30% 是写操作(insert、delete、update),故可使用读写分离的方式提升数据库的负载能力。

将所有的查询处理都放到从服务器上,写处理放在主服务器。
中亿丰——姜振建