java - 防止 Cassandra 转储 hprof 文件

标签 java php shell jvm cassandra

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

我的磁盘空间也非常有限(100 GB 中的 50 GB 用于数据),这些文件在我说“停止”之前就吞噬了所有磁盘空间。

我该怎么办?

有没有我可以用来不时删除这些文件的 shell 脚本?

最佳答案

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

我没试过。但是要阻止此选项,请在 $CASSANDRA_HOME/conf/cassandra-env.sh

中注释以下行
JVM_OPTS="$JVM_OPTS -XX:+HeapDumpOnOutOfMemoryError"

您也可以选择评论此 block ,但我认为这并不是必需的。我猜这个 block 在 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

让我知道这是否有效。


更新

...I guess it is JVM throwing it out when Cassandra crashes / shuts down. Any way to prevent that one from happening?

如果您想完全禁用 JVM 堆转储,请参阅此处 how to disable creating java heap dump after VM crashes?

关于java - 防止 Cassandra 转储 hprof 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9108118/

相关文章:

php - 无法加载资源 403 Forbidden - Herkou 上的静态 bootstrap/html 站点 - 权限问题

linux - 为什么在 shell 脚本中,$?不能回显两次吗?

java - 为什么像下面这样的一些方法需要访问修饰符 "static"?

java - Android中从web异步加载图片到gridview

php - 基于输入类型选择的表单操作

javascript - html/php 表单转 JSON 的问题

linux - 用于检查网络状态的 Bash 脚本 - linux

linux - 启动 Konsole 窗口后运行什么语言,它能做什么?

java - 序列化draw2d LayeredPane

java - GraphQl usług 网关模式