开发者社区> 问答> 正文

spin lock 导致cpu 很高

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技术难题

展开
收起
管理贝贝 2016-07-14 15:45:08 3709 0
1 条回答
写回答
取消 提交回答
  • 静静的看着你们

    1 的确PG流复制在备库需要兼顾库恢复物理日志和只读查询。有很多参数控制这方面,帮助您协调备库上的只读查询。参考下面链接的 Hot Standby Parameter Reference 部分
    参考 https://www.postgresql.org/docs/9.4/static/hot-standby.html

    2 spin lock 的问题可能需要根据业务场景优化,如果可以请详细描述下。

    2019-07-17 19:56:24
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
How Simplicity Will Unlock the 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载