防止Cassandra转储hprof文件

Sal*_*TEN 6 php java shell jvm cassandra

我想阻止Cassandra转储hprof文件,因为我不需要使用它们.

我也有非常有限的磁盘空间(100 GB中的50GB用于数据),这些文件吞噬了所有磁盘空间,然后才能说"停止".

我该怎么办呢?

是否有我可以用来擦除这些文件的shell脚本?

Nis*_*ant 7

这是因为Cassandra以-XX:+HeapDumpOnOutOfMemoryErrorJava选项开始.如果你想分析哪个是好东西.此外,如果您收到大量的堆转储,表明您应该调整Cassandra可用的内存.

我没试过.但要阻止此选项,请注释以下行$CASSANDRA_HOME/conf/cassandra-env.sh

JVM_OPTS="$JVM_OPTS -XX:+HeapDumpOnOutOfMemoryError"
Run Code Online (Sandbox Code Playgroud)

或者,您也可以对此块进行评论,但我认为并非真正需要.我猜这个版块有1.0+版本.我在0.7.3中找不到这个.

# set jvm HeapDumpPath with CASSANDRA_HEAPDUMP_DIR
if [ "x$CASSANDRA_HEAPDUMP_DIR" != "x" ]; then
    JVM_OPTS="$JVM_OPTS -XX:HeapDumpPath=$CASSANDRA_HEAPDUMP_DIR/cassandra-`date +%s`-pid$$.hprof"
fi
Run Code Online (Sandbox Code Playgroud)

如果有效,请告诉我.


更新

...我猜是当Cassandra崩溃/关闭时,JVM会抛出它.有什么方法可以防止这种情况发生?

如果要完全禁用JVM堆转储,请参阅此处如何在VM崩溃后禁用创建Java堆转储?