【 TiDB 使用环境】测试环境
【 TiDB 版本】
select version();
+--------------------+
| version() |
+--------------------+
| 8.0.11-TiDB-v7.4.0 |
+--------------------+
【复现路径】
在一个数据库中反复创建和删除表。
【遇到的问题:问题现象及影响】
TiKV存储路径下raft-engine文件夹的空间大小超过预期。
> du -h --max-depth=1
36G ./raft-engine
31G ./tablets
4.0K ./import
4.0K ./tablet_snap
66G .
检查raft-engine文件夹中的文件,发现大量文件。按时间排序的结果如下图,约有130个文件。
检查TiDB集群的相关配置如下:
MySQL [(none)]> show config where name like '%raftstore.raft-log-gc%';
+---------+-------------------+-----------------------------------------------------+--------+
| Type | Instance | Name | Value |
+---------+-------------------+-----------------------------------------------------+--------+
| tikv | 49.52.27.20:20162 | raftstore.raft-log-gc-count-limit | 10000 |
| tikv | 49.52.27.20:20162 | raftstore.raft-log-gc-size-limit | 200MiB |
| tikv | 49.52.27.20:20162 | raftstore.raft-log-gc-threshold | 50 |
| tikv | 49.52.27.20:20162 | raftstore.raft-log-gc-tick-interval | 3s |
| tikv | 49.52.27.20:20161 | raftstore.raft-log-gc-count-limit | 10000 |
| tikv | 49.52.27.20:20161 | raftstore.raft-log-gc-size-limit | 200MiB |
| tikv | 49.52.27.20:20161 | raftstore.raft-log-gc-threshold | 50 |
| tikv | 49.52.27.20:20161 | raftstore.raft-log-gc-tick-interval | 3s |
| tikv | 49.52.27.20:20160 | raftstore.raft-log-gc-count-limit | 10000 |
| tikv | 49.52.27.20:20160 | raftstore.raft-log-gc-size-limit | 200MiB |
| tikv | 49.52.27.20:20160 | raftstore.raft-log-gc-threshold | 50 |
| tikv | 49.52.27.20:20160 | raftstore.raft-log-gc-tick-interval | 3s |
| tiflash | 49.52.27.20:3930 | raftstore-proxy.raftstore.raft-log-gc-count-limit | 73728 |
| tiflash | 49.52.27.20:3930 | raftstore-proxy.raftstore.raft-log-gc-size-limit | 72MiB |
| tiflash | 49.52.27.20:3930 | raftstore-proxy.raftstore.raft-log-gc-threshold | 50 |
| tiflash | 49.52.27.20:3930 | raftstore-proxy.raftstore.raft-log-gc-tick-interval | 3s |
+---------+-------------------+-----------------------------------------------------+--------+
其中raftstore.raft-log-gc-size-limit为200MiB,远小于实际的36G。raftstore.raft-log-gc-tick-interval为3s,但目录下的raftlog时间差达到分钟级,因此多余的raftlog应该能被删除。
目前通过tiup clean --all暂时清空了日志,但我希望能知道TiDB的配置项所限制的raft-engine目录的空间到底是多少(怎么计算的)?以及如何限制raft-engine目录的空间占用。谢谢!
另,集群tikv的配置文件如下
tikv:
log.file.max-backups: 10
log.level: error
readpool.coprocessor.use-unified-pool: true
readpool.storage.use-unified-pool: false
rocksdb.max-total-wal-size: 1
storage.engine: partitioned-raft-kv