Как обойти ошибку "указанный размер стека слишком мал" в Java на POWER8?
Я пытаюсь запустить приложения Java (ElasticSearch и Cassandra) в Ubuntu (14.04), работающие на оборудовании Power PC с использованием OpenJDK. Я столкнулся с ошибкой:
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 требуется как минимум 160 КБ для размера стека. Таким образом, архитектура Power PC требует размера стека в десять раз больше, чем x86_64.
Существуют ли другие параметры Java, специфичные для Linux Java, работающие на архитектуре Power PC?
3 ответа
Способ изменить размер стека для запуска Java в командной строке: -Xss
В этом случае это: java -Xss1664k JavaApplication
Если вы используете приложения Java, которые имеют файлы конфигурации (такие как Cassandra или ElasticSearch), размер стека часто указывается в JAVA_OPTS
переменная файла конфигурации.
Убедитесь, что вы используете ppc64el
кроме архитектуры powerpc
, Powerpc
это 32-разрядная версия, и она не рекомендуется запускать на сервере POWER8.
С другой стороны, пожалуйста, используйте ppc64el
, который является 64-битным выпуском и должен иметь размер стека, соответствующий размеру.
Редактировать /etc/cassandra/cassandra-env.sh
+ Изменить JVM_OPTS="$JVM_OPTS -Xss 1664k"
в JVM_OPTS="$JVM_OPTS -Xss1792k"
Попробуйте запустить Кассандру снова. Это будет работать.