单个 Be节点 磁盘占用率持续上升直到被打满

【背景】
【业务影响】单个BE挂掉,暂时手动将异常BE停服,目前任务正常运行
【StarRocks版本】2.5.5
【集群规模】3fe(1 follower+2observer)+15be
【机器信息】16C/128G + 6T*2 ssd
【联系方式】社区群3 - duke
【详述】晚间任务报错,查看监控发现117be节点磁盘占用从下午快速上升,看BE状态 从下午16:00有一次失联,应该是当时负载比较高,但是查看be日志发现当时并没有重启,监控后面的异常是手动停止117节点。


be.out: 最后一期启动时间是5.15,当时是将集群从2.5.2升级到 2.5.5

show proc ‘/statistic’; 看下统计信息表 column_statistic 是否存在 unhealthytablet 这个磁盘打满的be节点日志中搜一下 compaction,看下是否存在 too many compaction,对应的tabletd 搜一下 看是不是column_statistic表 unhealthytablet,类似下图日志

之前已经把BE摘掉重装了所以没有日志之类的,不过今天发现同样的情况好像又出现了,单个节点的磁盘占用率不断上升
查看tablet状态存在两个 unhealthytablet这两个tablet确实有在问题节点上有副本:

日志里筛选这两个tablet没有发现compaction 的log,有很多clone失败的log:


进入到 log中warnning的目录 查看,目录很大 是只存了一个tablet 八百多G?:

  1. 手动将 两个unhealthy 的tablet 在问题节点上的副本 set bad 之后目前磁盘使用率已经不再上升,但是该节点的磁盘占用仍然维持咋一个很高的水平没有下降
  2. 手动将 unhealthy的tablet所在的两张表 删除重建之后仍然没有下降

某个be节点的一块磁盘又出现类似情况


该tablet已经查不到信息:

之前出现该情况时解决方案为:从集群摘除,格式化后再加入集群
今天又出现,案发现场的情况以及log:


四个问题tablet,都有副本在磁盘上升的节点

be.warnning 查找tabletid:

手动使用下面命令setbad 不生效

ADMIN SET REPLICA STATUS PROPERTIES("tablet_id" = "132989961", "backend_id" = "53820208", "status" = "bad");

BE该问题一直出现。。。

mysql> show proc '/statistic/108138199';
+------------------+---------------------+----------------+-------------------+
| UnhealthyTablets | InconsistentTablets | CloningTablets | ErrorStateTablets |
+------------------+---------------------+----------------+-------------------+
| [108214752]      | []                  | []             | [108214752]       |
+------------------+---------------------+----------------+-------------------+

mysql> SHOW PROC '/dbs/108138199/108144161/partitions/108214507/108144162/108214752';
+-----------+-----------+---------+-------------+-------------------+-----------------------+------------------+----------------------+---------------------+------------+----------+----------+--------+-------+---------------+--------------+---------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------+--------------+
| ReplicaId | BackendId | Version | VersionHash | LstSuccessVersion | LstSuccessVersionHash | LstFailedVersion | LstFailedVersionHash | LstFailedTime       | SchemaHash | DataSize | RowCount | State  | IsBad | IsSetBadForce | VersionCount | PathHash            | MetaUrl                                               | CompactionStatus                                                                           | IsErrorState |
+-----------+-----------+---------+-------------+-------------------+-----------------------+------------------+----------------------+---------------------+------------+----------+----------+--------+-------+---------------+--------------+---------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------+--------------+
| 108214753 | 51233777  | 42761   | 0           | 42761             | 0                     | 43318            | 0                    | 2023-06-25 02:01:51 | 1422599874 | 52428386 | 2031278  | NORMAL | false | false         | 2            | 3975779082933983685 | http://192.168.100.118:8040/api/meta/header/108214752 | http://192.168.100.118:8040/api/compaction/show?tablet_id=108214752&schema_hash=1422599874 | true         |
| 108214754 | 51234149  | 43318   | 0           | 43318             | 0                     | -1               | 0                    | NULL                | 1422599874 | 52519556 | 2034273  | NORMAL | false | false         | 2            | -478855312872339367 | http://192.168.100.119:8040/api/meta/header/108214752 | http://192.168.100.119:8040/api/compaction/show?tablet_id=108214752&schema_hash=1422599874 | false        |
| 108214755 | 53629671  | 43318   | 0           | 43318             | 0                     | -1               | 0                    | NULL                | 1422599874 | 52519599 | 2034273  | NORMAL | false | false         | 3            | 369396876658533025  | http://192.168.100.120:8040/api/meta/header/108214752 | http://192.168.100.120:8040/api/compaction/show?tablet_id=108214752&schema_hash=1422599874 | false        |
+-----------+-----------+---------+-------------+-------------------+-----------------------+------------------+----------------------+---------------------+------------+----------+----------+--------+-------+---------------+--------------+---------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------+--------------+
3 rows in set (0.00 sec)

BE.WARING:

/build/starrocks/be/src/storage/task/engine_clone_task.cpp:867 tablet->updates()->load_snapshot(snapshot_meta) tablet:108214752
W0623 03:35:01.576339 133077 agent_task.cpp:321] clone failed. signature: 108214752
W0623 03:35:07.889549 133161 load_channel.cpp:97] Fail to open index 108144162 of load cd4705e566b89e1b-7b97e1f64edf63bb: Service unavailable: Tablet is in error state, tablet_id: 108214752 primary index commit failed: Internal error: duplicate key found in l1 index
/build/starrocks/be/src/storage/persistent_index.cpp:3478 merge_shard_kvs(key_size, l0_kvs_by_shard[shard_idx], l1_kvs, estimate_size_per_shard, kvs)
/build/starrocks/be/src/storage/persistent_index.cpp:3508 _merge_compaction_internal(writer.get(), 0, _l1_vec.size(), _usage_and_size_by_key_length, false)
/build/starrocks/be/src/storage/persistent_index.cpp:2747 _merge_compaction()
/build/starrocks/be/src/storage/delta_writer.cpp:26 writer->_init()
/build/starrocks/be/src/runtime/local_tablets_channel.cpp:70 _open_all_writers(params)
W0623 03:35:21.859416 133076 engine_clone_task.cpp:161] Fail to load snapshot:Internal error: load snapshot failed, tablet updates is in error state: tablet:108214752 primary index commit failed: Internal error: duplicate key found in l1 index
/build/starrocks/be/src/storage/persistent_index.cpp:3478 merge_shard_kvs(key_size, l0_kvs_by_shard[shard_idx], l1_kvs, estimate_size_per_shard, kvs)
/build/starrocks/be/src/storage/persistent_index.cpp:3508 _merge_compaction_internal(writer.get(), 0, _l1_vec.size(), _usage_and_size_by_key_length, false)
/build/starrocks/be/src/storage/persistent_index.cpp:2747 _merge_compaction()
/build/starrocks/be/src/storage/task/engine_clone_task.cpp:867 tablet->updates()->load_snapshot(snapshot_meta) tablet:108214752
W0623 03:35:21.859488 133076 agent_task.cpp:321] clone failed. signature: 108214752

每次出问题的tablet都是同一张表的么,这个表是自己创建的表还是 统计信息表等系统自带的表,自己创建的表的话 是主键模型么,数据写入方式是哪种

出问题的表模型是主键模型表,问题表不固定,有时候是多个表,有时候是一个表,但问题tablet都是在一个BE节点,问题BE节点也不固定,写入方式都是stream load

最近出现磁盘上涨严重的时候,unhealthy tablet的数据目录还是会比较大么,现场还在的话,看看unhealthy tablet 数据目录下各个文件的信息

  1. 上午其中一个出问题的tablet,目前经过重启节点 118和手动set bad ,三副本都已经正常,且都不在118节点上。
  2. 但是查询118节点上该tablet的名称,该tablet的数据依然存在,应该是未清理的脏数据

目录下部分文件:

出错的表用过条件更新吗?

没有使用过此功能

之前是什么版本?一直都是2.5.5吗?提供下出错BE的日志?

版本是从 2.3-2.5.2-2.5.5 一路升级上来的,2.5.2的时候好像没有遇到过该问题

部分 be.INFO,包含上面的问题tablet,比如:108214752
be.INFO.log.20230625-021649.part.gz (20.4 MB)