【OceanBase诊断调优】—— 磁盘性能问题导致卡合并和磁盘写入拒绝排查

适用版本

OceanBase 数据库 V3.x、V4.x 版本。

问题现象

OceanBase 集群合并一直未完成,同时 tsar 和 iostat 显示从凌晨 2:30 开始磁盘使用率一直是 100%。怀疑合并导致 IO 上升,IO 可能存在问题,observer.log 的确有大量报错 disk is hung, disk has fatal error

问题原因

磁盘为机械盘,且 /home/admin /data/1/data/log1 混用同一块磁盘。磁盘性能太差,导致业务操作报 -4012 OB_IO_TIMEOUT-4009 OB_IO_ERROR,这会触发 IO 探测线程检测磁盘是否有问题,如果超过 data_storage_warning_tolerance_timedata_storage_error_tolerance_timelog_storage_warning_tolerance_time 这几个超时时间还没有恢复,就会触发 data 和 slog 的快速拒绝。

解决方法

  1. 日志限流。在此故障情况下,大量写入 ERROR 日志本身也会占用大量带宽,可能会导致问题更严重。

    alter system set syslog_io_bandwidth_limit='1MB';
    
  2. 增加 IO 探测的超时阈值,避免磁盘性能问题导致 data 和 slog 的快速拒绝。

    alter system set data_storage_warning_tolerance_time = 60s; --默认 5s
    alter system set data_storage_error_tolerance_time = 600s; --默认 300s
    alter system set log_storage_warning_tolerance_time = 60s; --默认 5s
    
  3. 将已经被快速拒绝的磁盘洗白。

    alter system set disk valid server '$192.xxx.x.x:2882';(所有服务器)
    

修改设置后,IO 报错消失,合并开始推进,可以看到待合并的分区数量在逐渐减少。

select count(1) from __all_virtual_tablet_meta_table where tenant_id = 1001 and compaction_scn < xxx;
-- xxx 填写的是 cdb_ob_major_compaction 查到合并未完成租户的 global_broadcast_scn
相关推荐
OceanBase数据库官方博客3 天前
半连接转内连接 | OceanBase SQL 查询改写
sql·oceanbase·分布式数据库
OceanBase数据库官方博客3 天前
解析在OceanBase创建分区的常见问题|OceanBase 用户问题精粹
oceanbase·分布式数据库·分区
OceanBase数据库官方博客3 天前
半连接转内连接规则的原理与代码解析 |OceanBase查询优化
sql·oceanbase·分布式数据库
IT培训中心-竺老师6 天前
OceanBase 数据库分布式与集中式 能力
数据库·分布式·oceanbase
靖顺6 天前
【OceanBase 诊断调优】—— OceanBase 数据库网络速率配置方案
网络·数据库·oceanbase
尚雷558014 天前
OceanBase 社区版 4.0 离线方式升级bp1至bp2 指南(含避坑总结)
oceanbase
五月高高14 天前
Linux部署oceanbase
linux·oceanbase
靖顺17 天前
【OceanBase 诊断调优】—— 统计信息自动收集超时导致的估行不准 SQL 选择错索引
数据库·sql·oceanbase
it界的哈士奇18 天前
Oceanbase离线集群部署
oceanbase