我在我的cassandra system.log中遇到以下异常:
WARN [CounterMutationStage-25] 2017-07-25 13:25:35,874 AbstractLocalAwareExecutorService.java:169 - Uncaught exception on thread Thread[CounterMutationStage-25,5,main]: {}
java.lang.RuntimeException: org.apache.cassandra.exceptions.WriteTimeoutException: Operation timed out - received only 0 responses.
at org.apache.cassandra.service.StorageProxy$DroppableRunnable.run(StorageProxy.java:2490) ~[apache-cassandra-3.9.jar:3.9]
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) ~[na:1.8.0_112]
at org.apache.cassandra.concurrent.AbstractLocalAwareExecutorService$FutureTask.run(AbstractLocalAwareExecutorService.java:164) ~[apache-cassandra-3.9.jar:3.9]
at org.apache.cassandra.concurrent.AbstractLocalAwareExecutorService$LocalSessionFutureTask.run(AbstractLocalAwareExecutorService.java:136) [apache-cassandra-3.9.jar:3.9]
at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:109) [apache-cassandra-3.9.jar:3.9]
at java.lang.Thread.run(Unknown Source) [na:1.8.0_112]
Caused by: org.apache.cassandra.exceptions.WriteTimeoutException: Operation timed out - received only 0 responses.
at org.apache.cassandra.db.CounterMutation.grabCounterLocks(CounterMutation.java:150) ~[apache-cassandra-3.9.jar:3.9]
at org.apache.cassandra.db.CounterMutation.applyCounterMutation(CounterMutation.java:122) ~[apache-cassandra-3.9.jar:3.9]
at org.apache.cassandra.service.StorageProxy$9.runMayThrow(StorageProxy.java:1473) ~[apache-cassandra-3.9.jar:3.9]
at org.apache.cassandra.service.StorageProxy$DroppableRunnable.run(StorageProxy.java:2486) ~[apache-cassandra-3.9.jar:3.9]
... 5 common frames omitted
每当发生这种情况时,CPU会在一分钟左右降至0%,节点会无响应但在此之后会恢复。 但最终,节点将完全死亡(即进程继续运行,但它不再响应命令,即使关闭不起作用,也必须终止进程)。
更多信息:
我尝试过的事情:
有没有人知道还能做什么?我主要担心的是节点完全死亡。我不确定这个异常是否会导致它,但它是我唯一的提示......
更新1:
更新到Cassandra 3.11,节点现在似乎不再死亡。但是,写入超时是主要的,节点在几分钟内没有响应但至少现在恢复了。
更新2:
解决问题(在专业顾问的帮助下)。我们节点上的磁盘I / O速度非常糟糕,导致刷新写入器的队列不断增加。原因未知,驱动器上的I / O速度测试(Raid 1 SSD)实际上非常好。 将节点从Windows移动到Linux(并根据http://docs.datastax.com/en/landing_page/doc/landing_page/recommendedSettings.html进行配置)解决了这个问题。
问题的真正原因尚不清楚;可能是Windows本身或只是与RAID设置的一些怪异不兼容。无论如何,Cassandra只是在Linux上进行过测试,而且更容易找到Linux设置的帮助。经验教训。
答案 0 :(得分:1)
这听起来像是一台拥有20个核心和256GB内存的强大机器。 Cassandra是一个旨在横向扩展的分布式系统。不要在单个节点上推送负载,而是尝试添加更多商品硬件并水平扩展。您也可以在同一个框中运行Cassandra的多个节点。
Atleast尝试在此框中运行几个节点,以便从无响应中扩展。大多数情况下,CPU不是Cassandra的瓶颈。它是单个节点可以执行的I / O.