【 使用环境 】生产环境
【 OB or 其他组件 】obproxy-ce observer
【 使用版本 】5.7.25-OceanBase_CE-v4.2.1.2
【问题描述】用jmeter压测的,并发250 5分钟,生产环境是通过obproxy-ce用jdbc连接的,多次压测均未平均分配cpu,cpu的使用在历次压测中,随机集中在一个服务器上。咨询下,需要如何调整可以使得cpu使用较为平均。
在压测中,cpu主要集中在其中一个服务器上
租户各个 Zone 优先级相同
【 使用环境 】生产环境
【 OB or 其他组件 】obproxy-ce observer
【 使用版本 】5.7.25-OceanBase_CE-v4.2.1.2
【问题描述】用jmeter压测的,并发250 5分钟,生产环境是通过obproxy-ce用jdbc连接的,多次压测均未平均分配cpu,cpu的使用在历次压测中,随机集中在一个服务器上。咨询下,需要如何调整可以使得cpu使用较为平均。
在压测中,cpu主要集中在其中一个服务器上
租户各个 Zone 优先级相同
请问表是分区表吗?使用的租户的primaryzone是设置的random吗?
没有使用分区表,租户的primaryzone是设置的random
先查一下租户的表分区的主副本位置分区。通常主副本的位置决定了 SQL 被路由到的节点,也就是负载主要所在的节点。
然后从 gv$ob_sql_audit
查几组业务事务 SQL 看看。通常 事务里所有SQL的被路由到的节点会跟事务第一个 SQL 或 DML SQL 所被路由到的节点有关。
需要把表改成分区表,非分区表是容易导致压力不均衡的
咨询下租户的表分区的主副本位置分区是通过DBA_OB_TABLE_LOCATIONS
查询么, gv$ob_sql_audit
这个表只记录了一天,之前的历史记录找不到了,GV$ACTIVE_SESSION_HISTORY
用这个表查的历史会话
我们没有用分区表
建议把非分区表都改成分区表,单个非分区表的主副本是在一个zone上的,所以容易压力不均衡,需要改成分区表,这样每个分区的主副本会random的分布在多个zone上
是三个节点的1-1-1
是有可能的,所以需要看 gv$ob_sql_audit
表里的多组SQL路由地址确定
这几个查询是同一个表吗?看起来有路由到不同server上
不同的sql_id对应不同的表,所以转发到不同的服务器
需要压测cpu都打到一个节点那段时间的日志