Cassandra 大量插入后,卡桑德拉应力测试失败

Cassandra 大量插入后,卡桑德拉应力测试失败,cassandra,datastax-enterprise,Cassandra,Datastax Enterprise,我一直在尝试使用压力测试将10亿条记录插入Cassandra,但在插入数百万条记录后失败,错误如下: 操作[641412926]重试10次-插入键0641412926时出错((不可用异常)) 操作[641412995]重试10次-插入键0641412995时出错((不可用异常)) 操作[641413235]重试10次-插入密钥0641413235时出错((不可用异常)) 操作[641413164]重试10次-插入键0641413164时出错((不可用异常)) 我在每次压力测试中都观察到了这个问题

我一直在尝试使用压力测试将10亿条记录插入Cassandra,但在插入数百万条记录后失败,错误如下:

操作[641412926]重试10次-插入键0641412926时出错((不可用异常))

操作[641412995]重试10次-插入键0641412995时出错((不可用异常))

操作[641413235]重试10次-插入密钥0641413235时出错((不可用异常))

操作[641413164]重试10次-插入键0641413164时出错((不可用异常))

我在每次压力测试中都观察到了这个问题。有时,集群中的任何一个节点都会停机。这是一个已知的问题吗?为什么会发生这种情况,有什么特别的原因吗?我在8台机器的集群上使用Cassandra 1.2.3

谢谢,
VS

首先要检查的是,您要插入的节点是否已启动,并且cassandra是否正在运行。假设是这样,那么你可能会压倒卡桑德拉。通常,当JVM垃圾收集过程以灾难性的方式失败时,JVM内运行的应用程序无法恢复。这可能是您触发的错误条件,这可能是您的Cassandra节点无法恢复的原因。要确认是否存在这种情况,请启用更详细的GC日志记录和/或查阅system.log中的现有JVM GC日志消息。

不可用异常意味着您联系的节点在集群中找不到足够的副本,无法满足请求的密钥。如果在压力测试期间节点上下移动,则可能需要更大的容量来处理针对集群运行的负载


为什么会这样?在某种程度上,你可能是能力不足。如果磁盘空间没有用完,您应该评估CPU负载和IO,以了解发生了什么。使用Cassandra时,区分峰值负荷和持续负荷是很重要的。虽然Cassandra可以处理短暂的峰值,但完全有可能在节点上抛出比长期处理更多的负载。这意味着,如果你的高峰持续五分钟,你可能就没事了。如果峰值持续数天,您应该增加容量,因为您的集群最终将落后。

事实上,当集群中的一台机器(节点)停机时,就会发生这种情况。在某种程度上,压力测试中使用的连接池机制在机器停机时无法恢复,从而导致测试过程完全崩溃。如果有人有更多的信息,请添加到这个。