ob数据库持续写盘30mb/s是否正常?

我在群晖docker中部署fastgpt(oceanbase数据库),能正常使用,但在无任何操作状态下,包括刚构建全新的容器,发现ob在持续写盘达30mb/s,硬盘占用率达30%,这正常吗?这导致我的nvme硬盘半年写入量达477T而报废。日志没有发现异常。

5 个赞

半年477T,太夸张了,都写的啥呀,这么大

1 个赞

写入有点儿多

1 个赞

固态盘坏了吗?

1 个赞

关注下

需要了解下你的部署架构,目录分配,写操作是安装目录磁盘,数据盘还是日志盘。

如果有监控信息可以提供下截图,或者提供事发阶段的observer.log 日志。

1 个赞

@论坛小助手

1 个赞

在 OceanBase 数据库中,持续写盘的情况有可能是正常的,但具体是否正常还需要结合具体情况分析。根据给定的文档片段,可以得出以下几点信息:

  1. Redo 日志(来自文档ID: 7693):OceanBase 数据库在事务提交时会产生 Redo 日志,每条 Redo 日志的最大大小为 2 MB。在 V3.x 及之后的版本中,当事务内数据超过 2 MB 时,会即时生成 Redo 日志。这意味着在高并发写入场景下,可能会产生大量的 Redo 日志。

  2. 日志归档(来自文档ID: 7826):OceanBase 数据库提供了租户级别的日志归档能力,默认情况下,日志备份的周期为 2 分钟。虽然这是准实时的备份能力,但如果写入量较大,可能会频繁触发日志归档,导致持续写盘。

  3. 写入限速(来自文档ID: 16891):为了防止内存过载,OceanBase 数据库具备写入过载保护功能,当资源有限,无法扩展内存时,可以通过服务端写入限速来保护内存。如果您的系统没有开启写入限速,可能会导致在某些情况下写入量过大。

  4. LSM-Tree 存储引擎(来自文档ID: 16890):OceanBase 数据库使用 LSM-Tree 存储引擎,数据更新操作首先写入内存中的 MemTable,当 MemTable 达到一定阈值后,会触发 Compaction 操作,将数据转储到 SSTable 并释放内存。这个过程会产生一定的写入放大效应。

综合以上信息,30 MB/s 的持续写盘可能是因为 Redo 日志、日志归档或 Compaction 操作引起的。为了进一步确认是否正常,建议您检查以下内容:

  • 系统日志:查看是否有频繁的 Redo 日志生成或日志归档操作。
  • 内存使用情况:检查 MemTable 是否接近阈值,导致频繁的 Compaction 操作。
  • 写入限速:如果系统没有开启写入限速,可以考虑开启写入限速功能,防止内存过载。

如果上述检查仍然无法确定原因,建议联系 OceanBase 的技术支持团队进行进一步的诊断。

检索到的文档如下:

  1. Redo 日志
  2. 备份架构
  3. 在您开始前

学习学习 :+1: :+1: :+1: