memtable\u flush\u writer的意义和用途

xxhby3vn  于 2021-06-14  发布在  Cassandra
关注(0)|答案(2)|浏览(388)

有谁能告诉我memtable\u flush\u writers的用例和意义吗。在什么情况下我们应该调整默认值?我已经阅读了税务文件,但不清楚实际用途和好处。

x7yiwoj4

x7yiwoj41#

memtable\u cleanup\u threshold:当所有非刷新memtables使用的内存总量超过此比率时,cassandra会将最大的memtable刷新到磁盘。
memtable\u flush\u writers:定义memtable flush writer线程数。线程将并行写入磁盘(sstables)。但如果使用固态驱动器(ssd),则建议更改此参数。注意:如果您的数据目录由SSD支持,请将此设置增加到核心数。
我希望这能解决你的疑问。

u5i3ibmn

u5i3ibmn2#

默认情况下, memtable_cleanup_threshold 计算公式为:1/( memtable_flush_writers + 1)
正如mehul所指出的,yaml中有一些关于如何设置这个值的指导。与此相反,我绝不会将其设置为核心数,无论您是否使用ssd。
问题来的时候 memtable_flush_writers 如果设置得太高,您的节点可能会被触发压缩的小刷新所淹没。这有一个不幸的副作用,那就是导致您的commitlog被填满,并最终达到无法跟上刷新频率的程度。
如果发生这种情况,可以使用 nodetool flush . 但是如果你看到你的提交日志填满了你的磁盘,降低了你的 memtable_flush_writers 是一件值得尝试的好事情。
注:与所有类似于“调优”的cassandra更改一样,我会随着时间的推移进行增量更改,而不是剧烈的更改。为了安全起见。

相关问题