[TiDB]通过purge-threshold参数配置 Raft Engine 的磁盘空间占用大小

现象:
在/data/tidb/tidb-data/tikv-20160目录下,有一个文件夹占用了大量的空间,进行可以看到以下文件:
[root@uat-server-2 raft-engine]# ls
0000000000000001.rewrite  0000000000000208.raftlog  0000000000000229.raftlog  0000000000000250.raftlog
0000000000000188.raftlog  0000000000000209.raftlog  0000000000000230.raftlog  0000000000000251.raftlog
0000000000000189.raftlog  0000000000000210.raftlog  0000000000000231.raftlog  0000000000000252.raftlog
0000000000000190.raftlog  0000000000000211.raftlog  0000000000000232.raftlog  0000000000000253.raftlog
0000000000000191.raftlog  0000000000000212.raftlog  0000000000000233.raftlog  0000000000000254.raftlog
0000000000000192.raftlog  0000000000000213.raftlog  0000000000000234.raftlog  0000000000000255.raftlog
0000000000000193.raftlog  0000000000000214.raftlog  0000000000000235.raftlog  0000000000000256.raftlog
0000000000000194.raftlog  0000000000000215.raftlog  0000000000000236.raftlog  0000000000000257.raftlog
0000000000000195.raftlog  0000000000000216.raftlog  0000000000000237.raftlog  0000000000000258.raftlog
0000000000000196.raftlog  0000000000000217.raftlog  0000000000000238.raftlog  0000000000000259.raftlog
0000000000000197.raftlog  0000000000000218.raftlog  0000000000000239.raftlog  0000000000000260.raftlog
0000000000000198.raftlog  0000000000000219.raftlog  0000000000000240.raftlog  0000000000000261.raftlog
0000000000000199.raftlog  0000000000000220.raftlog  0000000000000241.raftlog  0000000000000262.raftlog
0000000000000200.raftlog  0000000000000221.raftlog  0000000000000242.raftlog  0000000000000263.raftlog
0000000000000201.raftlog  0000000000000222.raftlog  0000000000000243.raftlog  0000000000000264.raftlog
0000000000000202.raftlog  0000000000000223.raftlog  0000000000000244.raftlog  0000000000000265.raftlog
0000000000000203.raftlog  0000000000000224.raftlog  0000000000000245.raftlog  0000000000000266.raftlog
0000000000000204.raftlog  0000000000000225.raftlog  0000000000000246.raftlog  0000000000000267.raftlog
0000000000000205.raftlog  0000000000000226.raftlog  0000000000000247.raftlog  0000000000000268.raftlog
0000000000000206.raftlog  0000000000000227.raftlog  0000000000000248.raftlog  LOCK
0000000000000207.raftlog  0000000000000228.raftlog  0000000000000249.raftlog

如果要减少raftlog日志占用磁盘空间的大小,可以使用以下参数进行调整,修改完成后,通过重启tikv后,便会生效,从而达到了删除一些历史的日志的目的

purge-threshold参数:
指定主日志队列的阈值大小。当超过此配置值时,将对主日志队列执行垃圾回收。
此参数可用于调整 Raft Engine 的空间占用大小。
默认值:"10GiB"

root@erp [(none)]> SHOW CONFIG WHERE name LIKE '%purge-threshold%' AND type = 'tikv';
+------+---------------------+-----------------------------+-------+
| Type | Instance            | Name                        | Value |
+------+---------------------+-----------------------------+-------+
| tikv | 172.16.76.239:20160 | raft-engine.purge-threshold | 10GiB |
+------+---------------------+-----------------------------+-------+
1 row in set (0.03 sec)


配置方式:
通过 TiUP 修改配置(推荐方式):
   tiup cluster edit-config tidb-uat

server_configs:
  tidb: {}
  tikv:
    readpool.coprocessor.use-unified-pool: true
    readpool.storage.use-unified-pool: false
    rocksdb.wal-size-limit: 1G
    rocksdb.wal-ttl-seconds: 86400
    raft-engine.purge-threshold: 1G    -- 将参数由10G修改成1G
    storage.block-cache.capacity: 1G

保存退出:
Please check change highlight above, do you want to apply the change? [y/N]:(default=N) y
Applying changes...
Applied successfully, please use `tiup cluster reload tidb-uat [-N <nodes>] [-R <roles>]` to reload config.


[root@uat-server-2 raft-engine]#tiup cluster reload tidb-uat -R tikv

tiflash重启后,可以看到raft-engine目录下的目录被清理了:
[root@uat-server-2 raft-engine]# pwd
/data/tidb/tidb-data/tikv-20160/raft-engine
参数修改前:
[root@uat-server-2 raft-engine]# ls
0000000000000001.rewrite  0000000000000208.raftlog  0000000000000229.raftlog  0000000000000250.raftlog
0000000000000188.raftlog  0000000000000209.raftlog  0000000000000230.raftlog  0000000000000251.raftlog
0000000000000189.raftlog  0000000000000210.raftlog  0000000000000231.raftlog  0000000000000252.raftlog
0000000000000190.raftlog  0000000000000211.raftlog  0000000000000232.raftlog  0000000000000253.raftlog
0000000000000191.raftlog  0000000000000212.raftlog  0000000000000233.raftlog  0000000000000254.raftlog
0000000000000192.raftlog  0000000000000213.raftlog  0000000000000234.raftlog  0000000000000255.raftlog
0000000000000193.raftlog  0000000000000214.raftlog  0000000000000235.raftlog  0000000000000256.raftlog
0000000000000194.raftlog  0000000000000215.raftlog  0000000000000236.raftlog  0000000000000257.raftlog
0000000000000195.raftlog  0000000000000216.raftlog  0000000000000237.raftlog  0000000000000258.raftlog
0000000000000196.raftlog  0000000000000217.raftlog  0000000000000238.raftlog  0000000000000259.raftlog
0000000000000197.raftlog  0000000000000218.raftlog  0000000000000239.raftlog  0000000000000260.raftlog
0000000000000198.raftlog  0000000000000219.raftlog  0000000000000240.raftlog  0000000000000261.raftlog
0000000000000199.raftlog  0000000000000220.raftlog  0000000000000241.raftlog  0000000000000262.raftlog
0000000000000200.raftlog  0000000000000221.raftlog  0000000000000242.raftlog  0000000000000263.raftlog
0000000000000201.raftlog  0000000000000222.raftlog  0000000000000243.raftlog  0000000000000264.raftlog
0000000000000202.raftlog  0000000000000223.raftlog  0000000000000244.raftlog  0000000000000265.raftlog
0000000000000203.raftlog  0000000000000224.raftlog  0000000000000245.raftlog  0000000000000266.raftlog
0000000000000204.raftlog  0000000000000225.raftlog  0000000000000246.raftlog  0000000000000267.raftlog
0000000000000205.raftlog  0000000000000226.raftlog  0000000000000247.raftlog  0000000000000268.raftlog
0000000000000206.raftlog  0000000000000227.raftlog  0000000000000248.raftlog  LOCK
0000000000000207.raftlog  0000000000000228.raftlog  0000000000000249.raftlog


参数修改后:
[root@uat-server-2 raft-engine]# ls
0000000000000001.rewrite  0000000000000250.raftlog  0000000000000254.raftlog  0000000000000268.raftlog
0000000000000247.raftlog  0000000000000251.raftlog  0000000000000265.raftlog  LOCK
0000000000000248.raftlog  0000000000000252.raftlog  0000000000000266.raftlog
0000000000000249.raftlog  0000000000000253.raftlog  0000000000000267.raftlog


[root@uat-server-2 raft-engine]# ll
total 1573652
-rw-r--r-- 1 tidb tidb   2747635 Sep 16 15:32 0000000000000001.rewrite
-rw-r--r-- 1 tidb tidb 134393914 Aug 15 02:21 0000000000000247.raftlog
-rw-r--r-- 1 tidb tidb 134220464 Aug 15 02:25 0000000000000248.raftlog
-rw-r--r-- 1 tidb tidb 134257490 Aug 15 02:28 0000000000000249.raftlog
-rw-r--r-- 1 tidb tidb 134221768 Aug 15 02:30 0000000000000250.raftlog
-rw-r--r-- 1 tidb tidb 134217766 Aug 15 09:42 0000000000000251.raftlog
-rw-r--r-- 1 tidb tidb 134218111 Aug 17 15:00 0000000000000252.raftlog
-rw-r--r-- 1 tidb tidb 134217917 Aug 19 10:06 0000000000000253.raftlog
-rw-r--r-- 1 tidb tidb 134219279 Aug 19 10:12 0000000000000254.raftlog
-rw-r--r-- 1 tidb tidb 134217793 Aug 21 09:48 0000000000000265.raftlog
-rw-r--r-- 1 tidb tidb 134218050 Aug 23 13:01 0000000000000266.raftlog
-rw-r--r-- 1 tidb tidb 134217731 Aug 25 15:35 0000000000000267.raftlog
-rw-r--r-- 1 tidb tidb 131960965 Sep 16 15:51 0000000000000268.raftlog
-rw-r--r-- 1 tidb tidb         0 Sep 16 15:31 LOCK
分割线
感谢打赏
江西数库信息技术有限公司
YWSOS.COM 平台代运维解决方案
 评论
 发表评论
姓   名:

Powered by AKCMS