有谁能告诉我memtable\u flush\u writers的用例和意义吗。在什么情况下我们应该调整默认值?我已经阅读了税务文件,但不清楚实际用途和好处。
x7yiwoj41#
memtable\u cleanup\u threshold:当所有非刷新memtables使用的内存总量超过此比率时,cassandra会将最大的memtable刷新到磁盘。memtable\u flush\u writers:定义memtable flush writer线程数。线程将并行写入磁盘(sstables)。但如果使用固态驱动器(ssd),则建议更改此参数。注意:如果您的数据目录由SSD支持,请将此设置增加到核心数。我希望这能解决你的疑问。
u5i3ibmn2#
默认情况下, memtable_cleanup_threshold 计算公式为:1/( memtable_flush_writers + 1)正如mehul所指出的,yaml中有一些关于如何设置这个值的指导。与此相反,我绝不会将其设置为核心数,无论您是否使用ssd。问题来的时候 memtable_flush_writers 如果设置得太高,您的节点可能会被触发压缩的小刷新所淹没。这有一个不幸的副作用,那就是导致您的commitlog被填满,并最终达到无法跟上刷新频率的程度。如果发生这种情况,可以使用 nodetool flush . 但是如果你看到你的提交日志填满了你的磁盘,降低了你的 memtable_flush_writers 是一件值得尝试的好事情。注:与所有类似于“调优”的cassandra更改一样,我会随着时间的推移进行增量更改,而不是剧烈的更改。为了安全起见。
memtable_cleanup_threshold
memtable_flush_writers
nodetool flush
2条答案
按热度按时间x7yiwoj41#
memtable\u cleanup\u threshold:当所有非刷新memtables使用的内存总量超过此比率时,cassandra会将最大的memtable刷新到磁盘。
memtable\u flush\u writers:定义memtable flush writer线程数。线程将并行写入磁盘(sstables)。但如果使用固态驱动器(ssd),则建议更改此参数。注意:如果您的数据目录由SSD支持,请将此设置增加到核心数。
我希望这能解决你的疑问。
u5i3ibmn2#
默认情况下,
memtable_cleanup_threshold
计算公式为:1/(memtable_flush_writers
+ 1)正如mehul所指出的,yaml中有一些关于如何设置这个值的指导。与此相反,我绝不会将其设置为核心数,无论您是否使用ssd。
问题来的时候
memtable_flush_writers
如果设置得太高,您的节点可能会被触发压缩的小刷新所淹没。这有一个不幸的副作用,那就是导致您的commitlog被填满,并最终达到无法跟上刷新频率的程度。如果发生这种情况,可以使用
nodetool flush
. 但是如果你看到你的提交日志填满了你的磁盘,降低了你的memtable_flush_writers
是一件值得尝试的好事情。注:与所有类似于“调优”的cassandra更改一样,我会随着时间的推移进行增量更改,而不是剧烈的更改。为了安全起见。