启动Cassandra时出错导致无法启动

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设置为最大值,但没有效果。


可能是[Java启动失败 - 无法为对象堆保留足够的空间]的重复问题。(https://dev59.com/H3NA5IYBdhLWcg3wL6yx) - Raedwald
4个回答

2
请看我在这里的回答:https://dev59.com/fWct5IYBdhLWcg3wqvXL#14447535,其中描述了如何增加堆栈段大小。编辑 conf/cassandra-env.sh 配置脚本,大约在第185行左右,将 -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"

我建议从-Xss200k开始测试数值,并以20k的增量递增。我发现在Ubuntu服务器上使用-Xss280k可以成功运行。


2
可能是因为使用了32位的Java版本。我按照以下步骤将我的JAVA_HOME变量更改为64位版本:
1)同时按下“Windows + R”键,输入:sysdm.cpl
2)在“系统属性”中,点击“环境变量”按钮
3)在“环境变量”文本区域中,选择JAVA_HOME并点击“编辑”
4.a)在“变量值”中删除路径
(它看起来像这样:C:\Program Files (x86)\Java\jdk1.8.0_192)
4.b)改为输入64位路径
现在看起来是这样的:C:\Program Files\Java\jdk1.8.0_73
就这样。然后我只需要观察cassandra服务器脚本的运行……

堆内存问题解决了!


为了避免链接失效的风险,请从您链接的源中摘录相关信息并将其包含在您的答案中。 - chb

0

对于cassandra来说,没有足够的空间。您需要在cassandra-env.sh文件中更改一个值。

打开cassandra-env.sh文件。

sudo vi cassandra-env.sh

在文档中,您将看到JVM_OPTS="$JVM_OPTS -Xss180k" 将块大小增加到250到300之间。

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接