我正在尝试运行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
设置为最大尺寸但没有效果。
答案 0 :(得分:2)
请参阅我的答案https://stackoverflow.com/a/14447535/92463,其中描述了增加堆栈段大小。编辑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
能够成功运行。
答案 1 :(得分:0)
没有足够的空间供cassandra使用。您必须更改cassandra-env.sh
文件
打开cassandra-env.sh文件
sudo vi cassandra-env.sh
在文档中,您将看到JVM_OPTS="$JVM_OPTS -Xss180k"
将块大小增加到250到300之间
答案 2 :(得分:0)
在cassandra-env.sh中设置256K的堆栈大小。
答案 3 :(得分:0)
可能是因为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服务器的密码在运行...
堆内存问题消失了!