Closed liupeidong0620 closed 1 year ago
@qingping209
@takenliu @tencent-adm 有空回复下,谢谢?
因为有binlog,可以尝试调小相关参数:minBinlogKeepSec,maxBinlogKeepNum,slaveBinlogKeepNum
因为有binlog,可以尝试调小相关参数:minBinlogKeepSec,maxBinlogKeepNum,slaveBinlogKeepNum
三者有优先级顺序吗?还有就是单实例模式,主从复制模式和cluster 模式下都可以用这三个参数控制吗?,你回复之前调整minBinlogKeepSec = 10,maxBinlogKeepNum = 1没有起作用,生成blob(生成三个binlog文件)后等一段时间(等待时间远超10s)没有发现blob文件有删除现象。slaveBinlogKeepNum (我目前单实例运行,不是集群模式,也非主从)这参数应该不影响删除现象
目前这三个参数是同时生效的,不过清理的时候是写入了binlog的删除标记在lsm里面,但是blob文件里面的binlog得要等待rocksdb的gc来删除,这里有待优化。
目前这三个参数是同时生效的,不过清理的时候是写入了binlog的删除标记在lsm里面,但是blob文件里面的binlog得要等待rocksdb的gc来删除,这里有待优化。
开启gc以后,删除时间无法控制(不知道何时gc掉所有数据)。目前测试来看写入60GB实际落盘120GB,过了大概一个小时数据量变成103GB,这个gc时间有控制方法吗?查看rocksdb中发现这个double blob_garbage_collection_age_cutoff = 0.25参数控制gc截止点,gc比例由它控制,是这个原因导致的吗?
# 打开gc
# 无法动态设置(官方api这个参数时可以动态设置的)
# // Dynamically changeable through the SetOptions() API
# bool enable_blob_garbage_collection = false;
# 思考: 比如数据迁移的过程中,写关闭gc,迁移完成在开启gc,是否性能提升?未知
rocks.enable_blob_garbage_collection yes
minBinlogKeepSec 100
maxBinlogKeepNum 1
测试一:
写入60GB数据,落盘数据105GB (符合預期)
测试二:
重复写入测试一的60GB数据,落盘数据 182GB (怎么计算得道,没有想明白)
reshape命令执行以后,落盘数据103GB (符合预期)
执行这个命令比较耗时,在进行compact,iostat观察磁盘io比较高,是否对正常读写造成影响,需要测试?
@qingping209
gc测试
# 打开gc # 无法动态设置(官方api这个参数时可以动态设置的) # // Dynamically changeable through the SetOptions() API # bool enable_blob_garbage_collection = false; # 思考: 比如数据迁移的过程中,写关闭gc,迁移完成在开启gc,是否性能提升?未知 rocks.enable_blob_garbage_collection yes minBinlogKeepSec 100 maxBinlogKeepNum 1
测试
- blob_garbage_collection_age_cutoff 无法修改
- blob_garbage_collection_age_cutoff = 0.25 (参考这个参数,60GB + binlog(60 /4 * 3) = 105GB 实际落盘数据)
测试一: 写入60GB数据,落盘数据105GB (符合預期) 测试二: 重复写入测试一的60GB数据,落盘数据 182GB (怎么计算得道,没有想明白) reshape命令执行以后,落盘数据103GB (符合预期)
reshape思考?
执行这个命令比较耗时,在进行compact,iostat观察磁盘io比较高,是否对正常读写造成影响,需要测试?
reshape会计算每次compact的大小;
Description
配置
版本
系统信息
rocksdb 日志
磁盘数据
压测脚本