4

我正在尝试运行 Cassandra。但是,我收到了这个错误:

[root@SudeepMangu bin]# ./cassandra -f
xss =  -ea -javaagent:/home/sudeep/apache-cassandra-1.2.5-src/lib/jamm-0.2.5.jar-
XX:+UseThreadPriorities -XX:ThreadPriorityPolicy=42 -Xms930M -Xmx930M -Xmn200M -
XX:+HeapDumpOnOutOfMemoryError -Xss160k

Error occurred during initialization of VM Could not reserve enough space for object heap

我尝试设置JAVA_OPTS为最大尺寸但没有效果。

4

4 回答 4

2

在这里查看我的答案,https://stackoverflow.com/a/14447535/92463,它描述了增加堆栈段大小。在第 185 行左右编辑conf/cassandra-env.sh配置脚本,并将 更改-Xss180k为更高的值。

if [ "`uname`" = "Linux" ] ; then
  # reduce the per-thread stack size to minimize the impact of Thrift
  # thread-per-client.  (Best practice is for client connections to
  # be pooled anyway.) Only do so on Linux where it is known to be
  # supported.
  # u34 and greater need 180k
  JVM_OPTS="$JVM_OPTS -Xss180k"
fi
echo "xss = $JVM_OPTS"

我建议测试值从20k 开始-Xss200k并以 20k 为增量增加。我发现-Xss280k在 Ubuntu 服务器上使用成功。

于 2013-07-09T16:50:30.590 回答
2

可能是因为 32 位 java 版本。我按照以下步骤将我的 JAVA_HOME 变量更改为 64 位版本:
1)点击两个“Windows + R”键并输入:sysdm.cpl
2)在“系统属性”上,我按下“环境变量”按钮
3)在textarea "Environment variables" 我选择了 JAVA_HOME 并点击了 'Edit'
4.a) 在 "Variable Value" 我取出了路径
(它看起来像这样:C:\Program Files (x86)\Java\jdk1.8.0_192)
4.b)我输入了 64 位路径
,但它现在看起来像这样:C:\Program Files\Java\jdk1.8.0_73
就是这样。然后我只是看着 cassandra 服务器 scipts 运行...

并且堆内存问题消失了!

于 2019-06-12T19:25:26.500 回答
0

在 cassandra-env.sh 中设置堆栈大小为 256K。

于 2014-09-24T09:33:59.123 回答
0

cassandra 没有足够的空间。您必须更改cassandra-env.sh文件内的值

打开 cassandra-env.sh 文件

sudo vi cassandra-env.sh

在文档中你会看到JVM_OPTS="$JVM_OPTS -Xss180k"

将块大小从 250 增加到 300

于 2014-06-11T07:38:55.597 回答