-
Notifications
You must be signed in to change notification settings - Fork 210
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Too many sst files of rocksdb. #206
Comments
|
I think @zhangsoledad 's suggestion is not use ssd, but tune cita's rocksdb configuration/usage to match hdd. |
Thx. |
@rink1969 @jerry-yu @jiangxianliang007 帮忙贴下之前调查过程中总结的一些信息 |
@jerry-yu Please update the info. |
关于测试链的bug: 经过rabbitmq的抓包,发现 mq 已经向 chain 发送了接收到的 executed_result 消息,但是chain的处理线程 recv_timeout 显示没有收到这个消息。 经过定位和google,发现跟标准库的channel的 recv_timeout 函数的 bug 有关。 解决: 使用 crossbeam 的channel 替换标准库的channel,需要修改cita-common等 暂时解决:可以先做快照。测试发现,低压力(做过快照的)节点,丢包的数量比较少,很快恢复。而压力大的节点,会丢失较长时间。 |
关于调优rocksdb:我们现有的kv-db的库,可供调优的参数提供的很少。 pub struct CompactionProfile { |
It's a new problem, open a new issue is better :) |
所以我理解这个是变成了另外一个 issue ? 然后接着按照这个解决办法修改?如果是这样,可以麻烦建一个 issue 然后 reference 这个 |
另外:在进行重构时,注意提供 kvdb 的接口,如果能够支持 tikv 的接口,减轻磁盘紧张的状况 |
Source CodeCITA use RocksDB to store Check Data in Test EnvironmentToday, I checked our test environment:
Comparison TestRecently, I write a simple patch to let CITA do not store block data and current data in RocksDB. In 6000 height:
ConclusionDO NOT store I did not find the reason of these results, now. But, if we just want a solution to decrease sst files of RocksDB, this conclusion is enough. |
rocksdb 有个选项是target_file_size_multiplier 官方解释:
而默认的target_file_size_multiplier 配置为:
配置值是1 对于这个配置项,看到有这个讨论: facebook/rocksdb#3265 (comment)
既然默认配置是1,又不是常用参数,那么SST文件数量多可能不是真正引起CPU 过高的问题, 如果不是文件数过多引起的高CPU占用,那需要同分析工具找出 CPU 占用高的是哪部分。 建议先开启 statistics,没有统计无法分析真正原因。
|
Benchmark: Deep directory structure vs. flat directory structure to store millions of files on ext4:
|
@jerry-yu 能把解决方案贴过来吗 |
Will release a patch version to fix it. |
Description
TBD
Steps to Reproduce
TBD
Expected behavior: TBD
Actual behavior: TBD
Reproduce how often: TBD
Versions
0.20.2
Additional Information
------------------Chinese-----------------------------
CITA 长时间运行后发现 rocksdb 会生成较多的 sst 文件,测试链运行 3 个月,数据大小 30G,nosql 目录下接近 200W 个 sst 文件,导致 CITA-chain CPU 占用率 持续增长(偶尔出现卡顿 不出块 不知道是否和这个有关系),inode 占比 30% ,目测 在 4c 8G 100G 硬盘的服务器 启动一个节点 运行一年 inode 会满, 是否有办法 控制 sst 生成的文件数量的,同时 不要把所有的 sst 文件放在 nosql一级目录下,可以按hash 目录索引 ,目录下存放子目录再放 sst。
The text was updated successfully, but these errors were encountered: