首批通过分布式安全可靠测评,为关键业务系统打造
OBServer 升级 V3.2.3 版本后,持续报磁盘 IO 超时,但系统监控负载低
更新时间:2026-05-18 01:51
问题现象
在公有云环境,从 OceanBase 数据库 V3.2.2 版本升级到 V3.2.3 版本后,用户的大查询请求报超时,但系统监控发现 IO 压不上去。
关键诊断信息
触发条件
IO 限流打开(即 OBServer 安装目录中存在 etc/io_resource.conf 文件且内容有效)的场景,不合理的 IO 限流配置,叠加需要大量访问磁盘数据的大查询请求。
事前巡检
查看 IO 限流配置。
问题原因
OceanBase 数据库 V3.2.3 版本相比 V3.2.2 版本,微块预取存在 IO 放大(一个微块重复发多次 IO 请求)。
OceanBase 数据库 V3.2.3 版本相比 V3.2.2 版本,IO 内存分配较慢,加剧了微块预取的 IO 放大倍数。
IO 限流场景,存在 IO 积压的设计缺陷。
问题的风险及影响
在 IO 限流打开(即 OBServer 安装目录中存在 etc/io_resource.conf 文件且内容有效)的场景,不合理的 IO 限流配置,叠加需要大量访问磁盘数据的大查询请求,可能导致 IO 请求的发送速度大于 IO 请求的处理速度,造成 IO 请求积压而报超时。
影响租户
影响 OceanBase 数据库中的 Oracle 租户和 MySQL 租户,对于 SYS 租户无影响。
影响的版本
OceanBase 数据库 V3.2.3 GA(oceanbase-3.2.3.0-20220418212020)及之后版本。
解决方法
升级至问题已修复版本。目前已修复的版本包括 OceanBase 数据库 V3.2.3 BP6(oceanbase-3.2.3.3-106000102022111521)。
优化了微块预取的放大倍数,优化了 IO 的内存分配速度。
规避方式
删除 OBServer 安装目录中的 etc/io_resource.conf 文件,从而关闭 IO 限流。