Как обойти ошибку "указанный размер стека слишком мал" в 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"

Попробуйте запустить Кассандру снова. Это будет работать.

Ссылка

Другие вопросы по тегам