Linux
如何查找casandra頻繁殺人的原因?
在 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
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 中的任何其他設置?
這些程序被核心殺死,因為它們正在吃掉所有的記憶體(oom-killer)。如果您的 Xmx 和 XmaxpermGen 配置不正確,則經常使用 java。也不要為java分配所有記憶體,讓一些空閒記憶體給作業系統。
查看您的真實控制台(來自該伺服器的監視器),看看您是否沒有看到任何錯誤消息。
問候