为什么同样的业务场景集群性能比单数据库差

一个业务场景原本链接的是一个单ob数据库,现在链接到了一个三副本集群。为什么性能变差很多?
原本单数据库CPU只占用500%
现在主副本cpu占用2000%
副2


副1



这是为什么?为什么性能差那么多
业务链接的主副本

4 个赞

:hugs: :hugs: :blush: :blush:

1 个赞

厉害:+1:t2:

1 个赞

有没有官方大佬给一个优化啊,为什么会这样

1 个赞

cpu使用的多不代表性能差吧。
估计是高可用集群内部work占用了线程导致cpu比单机环境高

2 个赞

这么高也不正常吧

2 个赞

1)绝对负载变大

集群自身带来了复制和协调成本。

2)性能指标口径变了

如果原来单库是:

  • 一个实例
  • 一个进程
  • 一套后台线程

最常见的几类原因

场景 A:写多

如果业务主要是 insert/update/delete,三副本开销很大。

场景 B:事务提交太频繁

比如每条数据一个事务,或者很小批量提交。
三副本下每次提交都要同步确认,成本高。

场景 C:热点表/热点行

很多请求打到同一批数据,主副本成为瓶颈。

场景 D:索引/SQL 不佳

换成集群后,SQL 需要做更多远程访问、回表、内部校验,慢 SQL 更明显。

场景 E:网络或副本延迟

副本间同步慢,主副本等待时间长,CPU 和延迟都会上升。

2 个赞

分布式数据库为为协调操作占用资源的

1 个赞

这个得看具体场景吧,分布式架构可能会产生分布式事务,性能上可能会比单机差,但分布式主打的是高可用、读写分离

1 个赞

官方

1 个赞

简单理解,多个节点之间需要沟通协调同步以保持数据一致性和高可用性,会在一定程度上影响性能

1 个赞

有没有推荐的优化方案