如何查找卡桑德拉频繁死亡的原因?

如何查找卡桑德拉频繁死亡的原因?

在具有 1GB 内存的 centos linux 系统中安装了 cassandra 0.8。启动 cassandra 后一小时内,它经常死机。另外,我可以说 java 也在被杀死,而这对于运行 cassandra 是必需的,因此,请问我如何找到 cassandra 死机的原因。

内存使用情况:

-bash-3.2# free -m
             total       used       free     shared    buffers     cached
Mem:           500        454         46          0         17        352
-/+ buffers/cache:         84        415
Swap:         1023          0       1023

答案1

  • dmesg应该告诉你 oom-killer 是否启动
  • /var/log/cassandra/system.log会告诉你是否耗尽了 Java 堆(OutOfMemoryException)

如果是 OutOfMemoryException,则设置:

JVM_OPTS="$JVM_OPTS -XX:+HeapDumpOnOutOfMemoryError"
JVM_OPTS="$JVM_OPTS -XX:HeapDumpPath=/var/crash/cassandra_`date +%s`.hprof"

在 cassandra-env.sh 中将生成一个堆转储,您可以对其进行后处理以查看哪里出了问题。您是否更改了 cassandra-env 中的任何其他设置?

答案2

由于占用了所有内存(oom-killer),进程会被内核终止。如果 Xmx 和 XmaxpermGen 配置不正确,java 中就会经常出现这种情况。另外,不要为 java 分配所有内存,留出一些空闲内存给操作系统。

查看您的真实控制台(从该服务器监视),看看是否没有看到任何错误消息。

问候

相关内容