【问题标题】:Issues in growing commit logs不断增长的提交日志中的问题
【发布时间】:2018-11-02 06:49:36
【问题描述】:

我有一台机器,提交日志一直增加到 7.8 GB,并且还在增长,我检查了一个属性 commitlog_total_space_in_mb: 8192,它在 cassandra.yaml 中被注释。我怀疑它必须是默认值。

1) 增加提交日志大小的问题是什么?
2)是不是说我的memtable阈值没有达到?

已编辑:

memtable_cleanup_threshold = 1/(memtable_flush_writers + 1) * (memtable_offheap_space_in_mb + memtable_heap_space_in_mb)

推荐值在哪里,

memtable_flush_writers -  Smaller of number of disks or number of cores with a minimum of 2 and a maximum of 8, so in our case it is '8'

memtable_offheap_space_in_mb - 1/4 of the heap size, so in our case it is 2GB
memtable_heap_space_in_mb - 1/4 of the heap size, so in our case it is 2GB

所以计算会,

 memtable_cleanup_threshold = 1/(8 + 1) * 4096
 memtable_cleanup_threshold = 455MB

为什么它没有刷新到 455 MB 并删除提交日志?

【问题讨论】:

  • 提交日志可以大于你的内存表空间。 8GB的磁盘有问题吗?为什么要调整它?
  • @ChrisLohfink 这是正确的'我目前有 7.8 GB 的提交日志,这是否意味着内存中当前有 7.8 GB 的 mem 表数据可用'?因为据我所知,一旦 Mem 表刷新到 SSTable 中,就需要删除提交日志
  • @ChrisLohfink 我知道提交日志是多个内存表的组合,那么何时会删除提交日志?

标签: cassandra cassandra-3.0


【解决方案1】:

是的,8192MB(或日志文件磁盘空间的 1/4,以较小者为准 -- 如果您的服务器较小,则可能适用)是默认值。来源:Cassandra documentation on commitlog_total_space_in_mb

回答您的问题:

(1) 如果提交日志文件继续增长,您可能会耗尽磁盘空间。

(2) 尚未达到配置的阈值。

在您添加其他问题后编辑:

刷新内存表时不会删除提交日志。

请注意,文件大小是根据您的配置大小预先分配的——我想您已经知道了,但请注意,如果其他人试图通过 ls 或类似方式观察文件大小。

如果你nodetool drain或重启,它们将被清除。否则,它们将继续增长到最大尺寸并旋转。

这是一个测试,看看如果你强制刷新会发生什么:

nodetool tablestats keyspace.table | grep "Memtable data size"
Memtable data size: 1292049

cat /var/lib/cassandra/commitlog/CommitLog-A.log | wc -l
10418

cat /var/lib/cassandra/commitlog/CommitLog-B.log | wc -l
0

nodetool flush

nodetool tablestats keyspace.table | grep "Memtable data size"
Memtable data size: 0

cat /var/lib/cassandra/commitlog/CommitLog-A.log | wc -l
10419

cat /var/lib/cassandra/commitlog/CommitLog-B.log | wc -l
0

nodetool drain

nodetool tablestats keyspace.table | grep "Memtable data size"
Memtable data size: 0

cat /var/lib/cassandra/commitlog/CommitLog-A.log | wc -l
no such file

cat /var/lib/cassandra/commitlog/CommitLog-B.log | wc -l
0

如果它根据 memtable 配置自动刷新,您会看到类似的结果。在以下观察到的刷新中,提交日志也没有被清除:

【讨论】:

  • 请检查有问题的编辑部分谢谢
猜你喜欢
  • 2016-07-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-03
  • 2010-11-20
  • 1970-01-01
  • 2018-01-19
  • 1970-01-01
相关资源
最近更新 更多