配置项server_balance_cpu_mem_tolerance_percent咨询

老师好 关于这个参数我理解的是:
假如zone1有三台server
server1 总cpu16 已分配8 占用率 50%
server2 总cpu16 已分配8 占用 50%
server3 总cpu16 已分配6 占用 37.5%
算下来平均占用率是 45.83%

假如server_balance_cpu_mem_tolerance_percent的值是默认值5
那么此时server3的占用和平均占用差值超过了5,会触发资源单元均衡。

请问我理解的对不对

理解没什么问题,|平均占用率-实际占用率|> 5 ,超过默认的5,理论上会触发资源单元均衡,直至|平均占用率-实际占用率|小于server_balance_cpu_mem_tolerance_percent

1 个赞

还得研究下

1 个赞

感谢老师 麻烦再问一下
server_balance_cpu_mem_tolerance_percent
这个参数的作用范围是同一个zone内的server
server_balance_disk_tolerance_percent
这个参数的作用范围是同一个租户下不同的日志流

对吗

1 个赞

这个还要考虑你每个OBSERVER上有几个UNIT,假如三个租户 分布在一个ZONE的三个observer上,根据你例子中的描述,整个ZONE里面算下来是不均衡的,但是,就目前的情况来看是最均衡的,UNIT和UNIT之前是不能进行均衡的,因为属于不同的租户,三个租户分布在三个OBSERVER上,这个从整体上是均衡的,UNIT的均衡你要考虑UNIT的总的个数,以及租户的个数

2 个赞

你好,

  • server_balance_cpu_mem_tolerance_percent:
    • 作用范围:同一个 zone 内的 OBServer ---- 属于资源单元均衡
    • 功能:控制 zone 内不同 OBServer 之间的 CPU 和内存资源占用率差异,触发 Unit 迁移以实现均衡。
  • server_balance_disk_tolerance_percent:
    • 作用范围:同一个租户下的不同日志流(LS)---- 属于租户内均衡
    • 功能:控制租户内不同日志流之间的磁盘占用率差异,触发磁盘均衡操作。
    • 在分区数量均衡的基础上,负载均衡模块通过尽可能地交换分区,实现各个日志流之间的磁盘占用差值不超过集群级配置项 server_balance_disk_tolerance_percent 所设置的百分比。如果单分区磁盘占用过大,可能会达不到该均衡效果。
      为避免小数据量场景均衡过于频繁的问题,目前版本的分区磁盘均衡触发的阈值为 50GB,若单个 LS 磁盘占用小于该阈值,则不会触发磁盘均衡。

目前 OceanBase 数据库的均衡维度主要包括以下四种:

  • Unit 均衡:控制 zone 内不同 OBServer 的 CPU、内存和磁盘资源占用率差异。
  • 日志流(LS)均衡:控制租户内不同日志流之间的磁盘占用率差异。
  • 分区均衡:通过交换分区,实现租户内分区数据分布的均衡。
  • Leader 均衡:保证 Leader 在 primary_zone第一优先级的 zone 上均匀分布。
1 个赞

感谢

2 个赞

好的 感谢

1 个赞