Cassandra Commit日志理想大小和默认大小说明

时间:2017-12-01 06:00:40

标签: configuration cassandra cassandra-2.0 cassandra-3.0 cassandra-2.1

从文档中给出

  

commitlog_total_space_in_mb   (默认:32位JVM为32MB,64位JVM为8192MB)注意用于提交日志的总空间。如果使用的空间超过此值,Cassandra会向上舍入到下一个最近的段multiple,并将memtables刷新到磁盘以获取最旧的commitlog段,从而删除这些日志段。这减少了在启动时重放的数据量,并防止不经常更新的表无限期地保留commitlog段。较小的总提交日志空间往往会导致活动较少的表上的刷新活动更多。

从Cassandra.yaml中指定:

  

用于磁盘上提交日志的总空间。

     

如果空间超过此值,Cassandra将清空每个脏CF   在最旧的部分并删除它。所以一个小的总commitlog空间   在较不活跃的列家庭中,往往会导致更多的冲洗活动。

     

默认值是8192中的较小值,占总空间的1/4   提交日志卷。

     

commitlog_total_space_in_mb:8192

我的查询是以下语句的含义:

  

默认值是8192中的较小值,占总空间的1/4   提交日志卷。

我的提交日志在同一个硬盘驱动器中,但驱动器不同 我已将提交日志的卷分配为70 GB。我应该将它减少到8GB,还是应该将它减少到32 GB,因为1/4的音量空间让我误以为需要考虑分区空间。

我有commitlog_total_space_in_mb的默认值,那么理想的提交日志分区大小应该是什么?

P.s:我知道这两个应该在不同的驱动器上以获得更好的性能。

1 个答案:

答案 0 :(得分:0)

关于您关于Cassandra.yaml语句的第一个问题-提交日志大小为:

Min(8GB, 0.25*total_disk_size)

在您的情况下,由于您已分配70 GB,因此提交日志大小将为8 GB。 您可以避免在Cassandra.yaml中设置大小而避免计算

关于第二个问题,最佳大小是多少?根据我的测试,将提交日志目录设置为8GB以下时,您会收到警告,提示磁盘空间不足,因此将其设置为8GB以上并记住,您始终可以增加大小。