在使用Cassandra 3.10群集进行了几周的压力测试后,突然出现了错误"Mutation of x bytes is too large",所有6个节点都出现了高CPU负载(例如 load average: 33.26, 32.47, 32.15
) .
执行的查询的大小没有变化,因此我们尝试增加 commit_log_segment_size_in_mb
. 它没有多大帮助 . nodetool info
的结果如同风箱 .
Gossip active : true
Thrift active : false
Native Transport active: true
Load : 126.04 GiB
Generation No : 1498838154
Uptime (seconds) : 68795
Heap Memory (MB) : 3258.00 / 8004.00
Off Heap Memory (MB) : 597.23
插入一些 blob
,具有可预测的最大尺寸(并且由退化时间保持不变)或~18kb(平均~10kb) .
数据主要使用单分区原子/记录批次(具有可配置且可预测的最大批量大小)进行更新,因为它根据压力测试提供了最佳吞吐量 . 请注意,即使现在还原为单个异步更新也无法解决此问题 .
什么可能导致表演突然退化?
数据量增加了(〜* 1.1),但我不希望它导致这种不成比例的问题(不存在与之相关的可用磁盘存储) . 我希望 Cassandra 在这种情况下能够很好地扩展 .
谢谢你的想法