如何解决 POWER8 上 Java 中的“指定的堆栈大小太小”错误?

如何解决 POWER8 上 Java 中的“指定的堆栈大小太小”错误?

我正在尝试使用 OpenJDK 在 Power PC 硬件上运行 Ubuntu (14.04) 的 Java 应用程序 (ElasticSearch 和 Cassandra)。我遇到了一个错误:

The stack size specified is too small, Specify at least 1664k  
Error: Could not create the Java Virtual Machine.  
Error: A fatal exception has occurred. Program will exit.  

我发现 x86_64 OpenJDK java 至少需要 160k 的堆栈大小。因此,看来 Power PC 架构需要的堆栈大小比 x86_64 大十倍。

是否有任何其他特定于在 Power PC 架构上运行的 Linux Java 的 Java 设置?

答案1

在命令行上更改运行 java 的堆栈大小的方法是 -Xss

在这种情况下: java -Xss1664k JavaApplication

如果您使用具有配置文件的 Java 应用程序(例如 Cassandra 或 ElasticSearch),则堆栈大小通常在JAVA_OPTS配置文件的变量中指定。

答案2

编辑/etc/cassandra/cassandra-env.sh

改成JVM_OPTS="$JVM_OPTS -Xss 1664k"JVM_OPTS="$JVM_OPTS -Xss1792k"

尝试再次启动 cassandra。它会起作用。

参考

答案3

确保您正在运行ppc64el除 之外的架构powerpcPowerpc是 32 位版本,并且不建议在 POWER8 服务器上运行。

另一方面,请使用ppc64el,它是 64 位版本,并且应该具有适当大小的堆栈大小。

相关内容