-
Notifications
You must be signed in to change notification settings - Fork 330
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
2.6.0版本,binlogrecycle动作开始后,在无外部链接情况下,内存持续增长 #247
Comments
我理解的binlogrecycle是将rocksdb中的binlog回收掉,binlog-save-logs是控制是否将binlog落盘到dump目录,理论上这2个动作都不应该会占用大量内存且不自动释放,不知道是不是我的理解有问题,辛苦大佬解答~~谢谢! |
您好,文档我看过的,内存上涨确实没有超过设定的最大值,我不太理解的点是:binlogrecycle期间,持续占用内存,这个逻辑是否合理呢?此时是否会影响正常的读写性能呢?binlogrecycle不是个清理动作嘛,binlog落盘需要使用内存,那落完盘为啥不把内存释放掉呢? |
rocks.blockcachemb 153600 |
是的,我的疑问是,当binlog回收完,为什么不把占用的cache释放掉呢?感觉这个不太合理。 |
释放不了,这是rocksdb的blockcache,读取的数据会加入到blockcache中,然后一直存在,直到有新的数据加入到blockcache里面来。你的场景下没有读请求,在有读请求的场景下,会有新的热数据加入到blockcache中来。 |
问题描述:
使用memtier_benchmark进行tendis 2.6.0版本压测,100% set,持续压测半小时,压测结束后(此时tendis无任何外部请求),当tendis触发binlogrecycle动作时,tendis进程占用的内存持续增长,最大达到202G。(再次配置binlog-save-logs = 0,测试后,内存未持续增长,怀疑是否与binlogrecycle的机制有关?)
测试环境:
tendis:2.6.0
linux:CentOS Linux release 7.7.1908 (Core)
memtier_benchmark:memtier_benchmark 1.3.0
压测命令:
memtier_benchmark -t 20 -c 50 -s xx.xx.xx.xx -p 3901 -a 123456 --distinct-client-seed --command="set key data" --key-prefix="kv_" --key-minimum=1 --key-maximum=50000000 --random-data --data-size=128 --test-time=1800
tendis配置文件:
The text was updated successfully, but these errors were encountered: