数据库有问必答 | PolarDB负载压力全部在主节点,cpu有点高了,读节点cpu几乎为0,怎么办

2022-01-24 00:00:00 集群 事务 节点 请求 路由

Q: PolarDB负载压力全部在主节点,cpu有点高了,读节点cpu几乎为0,怎么办?

造成主节点(主库)负载高的原因有直连主地址、主库接受读请求、存在大量的事务请求、主从复制延迟高导致请求被路由到主库、只读节点异常导致读请求被路由到主库等,具体解决方法如下:

  • 使用集群地址来连接PolarDB集群

    您可以在PolarDB控制台上管理集群地址,如创建和释放自定义集群地址,或修改集群地址的配置等,要注意的是,它的产品系列需为PolarDB MySQL集群版,且单节点和历史库均不支持该功能。

  • 如果由于事务较多导致主节点压力大,您可以通过控制台打开事务拆分功能把事务中的部分查询路由到只读节点

    PolarDB提供了事务拆分功能,旨在保证读写一致性的前提下,将事务中的读请求发送到只读节点,减轻主节点的压力。

  • 如果由于复制延迟导致请求被路由到主库,您可以考虑降低一致性等级

    PolarDB提供了三种一致性级别:终一致性、会话一致性和全局一致性,满足您在不同场景下对一致性级别的要求。

  • 主库接受读请求,可能也会导致主库负载高,您可以通过控制台关闭主库接受读功能,减少读请求被路由到主库

    开启主库是否接受读后,普通的读请求将不再发往主节点。而事务内,一致性要求的读请求还是会被发往主节点,以保证业务的需求。

    来源:https://mp.weixin.qq.com/s/fc-h2R4POG6hulZTMpN1sg

相关文章