Cassandra CPU 100%由于数千个待定压缩

Cassandra CPU 100%由于数千个待定压缩,cassandra,jvm,Cassandra,Jvm,最近,我们插入了数百万条记录,并从一个表中删除了数百万条记录,一个大小为10GB的表被截断 我们使用2个具有SizetieredCompressionStrategy的节点运行,当前CPU利用率为100%,挂起的压缩正在增加,当前挂起的压缩为293144 任何降低CPU利用率和快速完成压缩的指针 降低CPU利用率并快速完成压缩 这两件事是正交的。您可以通过使用更多资源来加速压缩,也可以限制压缩的资源,这样写操作不会受到影响,但会花费更长的时间 如果您有一个针对cassandra集群运行的摄取,我

最近,我们插入了数百万条记录,并从一个表中删除了数百万条记录,一个大小为10GB的表被截断

我们使用2个具有SizetieredCompressionStrategy的节点运行,当前CPU利用率为100%,挂起的压缩正在增加,当前挂起的压缩为293144

任何降低CPU利用率和快速完成压缩的指针

降低CPU利用率并快速完成压缩

这两件事是正交的。您可以通过使用更多资源来加速压缩,也可以限制压缩的资源,这样写操作不会受到影响,但会花费更长的时间

如果您有一个针对cassandra集群运行的摄取,我将尝试确保它不受压缩的影响。只要待定契约的数量随着时间的推移而减少,这只是时间问题

如果你没有读写操作,比如说宕机,或者你正在引导,那么让压缩使用你所有的资源并快速完成是可以的

怎样 杠杆是:

1获取/设置压缩吞吐量nodetool-仅适用于下一次可用的压缩。这就是压实的速度。默认值为16 mb/s。如果您有可用的资源,可以将其增加到更大的数字

2个并发压缩程序-您必须在JMX中设置2个值。您可以使用jmxsh或jconsole等动态地执行此操作。这是一次可以运行的压缩数,即内核数

监测 查看nodetool compactionstats或OpsCenter您还可以绘制挂起的压缩并设置警报,以了解当前压缩的进度或已完成压缩的nodetool comactionhistory

其他事情 大小为10 GB的表被截断

截断是免费的,无需压缩

降低CPU利用率并快速完成压缩

这两件事是正交的。您可以通过使用更多资源来加速压缩,也可以限制压缩的资源,这样写操作不会受到影响,但会花费更长的时间

如果您有一个针对cassandra集群运行的摄取,我将尝试确保它不受压缩的影响。只要待定契约的数量随着时间的推移而减少,这只是时间问题

如果你没有读写操作,比如说宕机,或者你正在引导,那么让压缩使用你所有的资源并快速完成是可以的

怎样 杠杆是:

1获取/设置压缩吞吐量nodetool-仅适用于下一次可用的压缩。这就是压实的速度。默认值为16 mb/s。如果您有可用的资源,可以将其增加到更大的数字

2个并发压缩程序-您必须在JMX中设置2个值。您可以使用jmxsh或jconsole等动态地执行此操作。这是一次可以运行的压缩数,即内核数

监测 查看nodetool compactionstats或OpsCenter您还可以绘制挂起的压缩并设置警报,以了解当前压缩的进度或已完成压缩的nodetool comactionhistory

其他事情 大小为10 GB的表被截断


截断是免费的,无需压缩。

phact,感谢您的及时响应,并提供了查看问题的指针。我已经增加了CPU和内存,并行压缩程序增加到2,压缩吞吐量增加到每秒32,这在15分钟内解决了压缩问题。这是在两个节点上完成的,所有压缩都完成了。再次非常感谢。phact,感谢您的及时回复,并提供了调查该问题的建议。我已经增加了CPU和内存,并行压缩程序增加到2,压缩吞吐量增加到每秒32,这在15分钟内解决了压缩问题。这是在两个节点上完成的,所有压缩都完成了。再次非常感谢。