OceanBase 中,RootService 作为负责集群资源管理、分布式策略执行的核心服务,在集群中充当着举足轻重的作用。而为 RS 提供计算和存储资源的 SYS 租户,本身也是通过多副本自选举的方式达到高可用的目的。在一些规模较大或者负载较高的环境中,少数情况下(极端场景、硬件问题等)可能发生因 SYS 租户队列积压导致的问题。本节针对这种情况介绍一些应急处理的策略方法。
应急处理方法
当 SYS 租户队列积压时,您可以尝试通过如下几种方法进行处理。
扩容sys租户资源
查看各个租户分配资源的方法如下
obclient> SELECT a.tenant_name,a.tenant_id,b.name unit_config,c.name pool_name,b.max_cpu,b.min_cpu FROM OCEANBASE.DBA_OB_TENANTS a, OCEANBASE.DBA_OB_UNIT_CONFIGS b, OCEANBASE.DBA_OB_RESOURCE_POOL c WHERE a.tenant_id=c.tenant_id AND b.unit_config_id = c.unit_config_id ORDER BY a.tenant_id desc;执行如下命令,扩容 sys 的CPU和内存资源。
ALTER RESOURCE UNIT unit_config_name min_cpu = 2,max_cpu = 2,memory_size = '2G',max_iops = 10000,min_iops = 10000;注意
截止 OceanBase V3.2 版本,修改
resource unit配置仅 CPU、Memory 配置是实际生效的,其他 IO 参数,例如磁盘、iops 等都暂时无效,默认即可。
执行 stop server 或者 RS 切主
RootService 简称 RS,是 OceanBase 数据库集群中内部任务调度管理的核心模块。当 SYS 租户队列积压时,可以通过 RS 切主,缓解当前的资源压力。您可以根据需要参照如下命令,执行 RS 切主:
obclient> ALTER SYSTEM SWITCH ROOTSERVICE {LEADER | FOLLOWER} {zone | server};
或者可以执行 stop server 隔离 RS/SYS 租户所在的机器
obclient> ALTER SYSTEM STOP SERVER "xx.xx.xx.xx:2882";
重启问题节点
对问题 RS 所在的 OB 节点做重启操作,详情请参见 重启 OBServer 服务。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




