hi 您好。我们使用的是pg 9.3.5的版本,操作系统是centos7. 使用流复制做主备。
之前遇到了一个问题就是spin lock 导致cpu 很高。我简单描述一下我的疑问:
最早我们业务是直连pg 主库没有使用pgbouncer 主库连接数在400~500之间,业务繁忙时会出现spin lock 主库cpu很高,经常要重启业务。后来把所有只读的业务都迁移到了备库,结果备库也出现的spin lock 。上pg社区寻求帮组,他们建议我们降低连接数,所以在备库和主库都加了pgbouncer。备库还是会出现spin lock的问题。然后把一大部分的只读查询又迁移回了主库,spin lock的问题就没有出现了。所以是不是可以认为 pg流复制的备库的性能要比主库差呢?我看了部分流复制的官方文档,是不是因为在 读备库数据的时候,并且在读的表需要恢复,是不是会导致性能受到损失?
小编只是大自然的搬运工,本问答整理自阿里技术天团正在解答Docker技术难题
1 的确PG流复制在备库需要兼顾库恢复物理日志和只读查询。有很多参数控制这方面,帮助您协调备库上的只读查询。参考下面链接的 Hot Standby Parameter Reference 部分
参考 https://www.postgresql.org/docs/9.4/static/hot-standby.html
2 spin lock 的问题可能需要根据业务场景优化,如果可以请详细描述下。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。