压缩后的Cassandra节点堆压力

时间:2015-03-26 07:46:03

标签: cassandra

使用sstableloader批量加载数据后,每个Cassandra节点的最终大小约为3.000 sstables,大小约为32MB。

试图减少号码。 sstables我在每个节点上运行'nodetool compact'。

这种压缩会对堆造成巨大压力。我尝试使用8GB堆(虽然我知道它是16 GB,但也是16 GB)。在这两种情况下,C *节点最终每次扫描执行垃圾收集约90秒。总之,压缩无法完成。

每台机器都有32 GB的物理内存。批量加载表使用STCS和caching ='keys_only'。

这导致了许多问题:

  1. 为什么许多较小的sstables在压缩过程中对堆积施加的压力要小于较小的较小的sstables?
  2. 将这些批量加载的sstables压缩的正确策略是什么?添加堆似乎无法解决它。
  3. 将一些sstables移走(使用linux命令mv)是安全的,使用剩余的sstables运行“nodetool compact”。然后将移动的sstables恢复到原来的位置并再次运行“nodetool compact”。 (黑客,我知道)。
  4. 更新

    实际上我有这些数量的sstables - 大多数相似的大小。由于内存不足,无法完成重大压缩。我无法找到一种方法来进行轻微的压缩:

    enter image description here

1 个答案:

答案 0 :(得分:2)

尝试降低concurrent compactorsthreshold for max. in memory row size的数量。你在使用固态硬盘吗?