欢迎访问OceanBase官网获取更多信息:https://www.oceanbase.com/
导致 observer 所在节点网卡负载过高的原因一般和批处理、复制迁移等后台任务相关。处理的思路和 IO 过高的方案类似,通常是任务降级和调整迁移复制相关参数等,本文针对几种不同的情况进行了详细的分析。
应急处理流程
对于 observer 所在节点网卡负载过高的场景,一般从以下几个方面入手处理。
暂停执行中的备份任务。
您可以通过 OCP 查看当前节点是否正在进行备份,如果是,可以暂停备份,以缓解 IO 压力。
暂停执行中的数据导入/导出任务。
您可以通过 OMS 查看当前节点是否正在进行数据传输任务,如果是的话,可以根据需要将其暂停,缓解 IO 压力后再继续执行。暂停数据迁移项目具体操作步骤如下所示。仅运行中的数据迁移项目支持暂停和恢复操作。暂停数据迁移项目后,OMS 会中止编排任务列表中正在运行状态的子任务,并自动终止其后面所有子任务的调度。
后续您可以手动继续运行暂停或失败的数据迁移项目。OMS 会从编排任务列表中,第一个待执行状态的任务开始依次执行各个子任务。
调低迁移复制的并发数。
当问题发生期间 OB 集群中如果恰好有 unit 迁移,或者副本均衡类的任务。此时可以通过限制迁移的并发数来达到 IO 限流的目的。
alter system set migrate_concurrency=5; --默认值为10 alter system set server_data_copy_in_concurrency=2; --默认值为2,如果高于该值,可以调回2 alter system set server_data_copy_out_concurrency=2; --默认值为2,如果高于该值,可以调回2调低后台任务的网络带宽。
您可以使用如下命令来调低后台任务的网络带宽:
alter system set sys_bkgd_net_percentage=30; --默认值60开启 Clog 传输压缩。
对于当前节点网卡负载过高的情况,可以考虑开启日志传输压缩。您可以通过设置
clog_transport_compress_all参数来开启日志传输压缩,该参数默认是False,即不开启日志传输压缩,该参数修改后无需重启直接生效。语法如下所示:ALTER SYSTEM SET clog_transport_compress_all = TRUE ;对高负载的SQL执行限流。
当磁盘 IO 过高,定位到某条 SQL 时,可以通过绑定 SQL 的执行计划加入 hint max_concurrent 来限制 SQL 并发,实现对 SQL 的限流。
CREATE OUTLINE outline_name ON sql_id USING HINT /*+max_concurrent(1)*/;更多信息请参见 《SQL 参考(MySQL 模式)》 中的 SQL语句 。
欢迎访问OceanBase官网获取更多信息:https://www.oceanbase.com/




