sofastack / sofa-jraft

A production-grade java implementation of RAFT consensus algorithm.
https://www.sofastack.tech/projects/sofa-jraft/
Apache License 2.0
3.6k stars 1.15k forks source link

raft log 磁盘占用 #544

Closed joer1900 closed 3 years ago

joer1900 commented 3 years ago

Your question

麻烦问下我现在使用rheakv三个节点,写入比较频繁,log这部分是否提供相应的配置,这部分的log随着时间越来越多,有没有相应的清理机制。

fengjiachun commented 3 years ago

snapshot 间隔配置的是多久?默认是一小时com.alipay.sofa.jraft.option.NodeOptions#snapshotIntervalSecs 可以配置间隔再小一点试试, snapshot 后会清理 raft log 的,另外再确认一下是 rheakv 的 data 目录越来越大还是 raft log 目录越来越大?

joer1900 commented 3 years ago

snapshot 间隔未自定义配置使用的是默认值,raftDataPath 配置目录下log的文件(如000003.log)会一直增长,106M重新分一个,一直累积。

配置如下:

clusterId: 1 clusterName: registry_rhea

placementDriverOptions: fake: true storeEngineOptions: commonNodeOptions: electionTimeoutMs: 3000 rocksDBOptions: sync: true raftDataPath: ../data/rhea_raft/ serverAddress: ip: 192.168.143.89 port: 10000 initialServerList: 192.168.143.89:10000,192.168.143.90:10000,192.168.143.94:10000 onlyLeaderRead: false

killme2008 commented 3 years ago

应该是这个问题类似,默认 rocksdb wal 最大可以到 2g

https://github.com/sofastack/sofa-jraft/issues/501

joer1900 commented 3 years ago

我在使用memoryDB 模式的时候依然会出现这个问题。

fengjiachun commented 3 years ago

�我在使用memoryDB 模式的时候依然会出现这个问题。

是 raft log 的 rocksdb wal,即使 rheakv 使用 rocksdb 也没关系,因为 rheakv 关闭了 rocksdb 的 wal, 但是 raft log 不能关闭 wal

joer1900 commented 3 years ago

我观察了这个raft log,每天生成105M左右分一个新的log,但是现在生成了25个了还是一直在写入,每天都会产生,产生新文件的时候会flush到sstfile,之前的 raft log并未删除。 maxTotalWalSize这个参数我看默认是0,是否可配置?

fengjiachun commented 3 years ago

501 里提到的是另一个 option maxTemporaryLogSize, 不过我也没找到这个 option,我问问他

killme2008 commented 3 years ago

还在持续增加吗? 从 #501 看,最大应该会到 3g 多。

joer1900 commented 3 years ago

一直会增加,5G多了还是持续增加的。

killme2008 commented 3 years ago

@joer1900 目前情况如何? 如果没有进一步的反馈,我先关闭了。如果发现还有问题,可以再打开