web-dev-qa-db-fra.com

Comment puis-je contourner une erreur "La taille de la pile spécifiée est trop petite" dans Java sur POWER8?

J'essaie d'exécuter des applications Java (ElasticSearch et Cassandra) sur Ubuntu (14.04) s'exécutant sur du matériel Power PC à l'aide d'OpenJDK. J'ai rencontré une erreur:

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.  

J'ai constaté que le x86_64 OpenJDK Java nécessite au moins 160 Ko pour la taille de la pile. Il semble donc que l'architecture Power PC nécessite une taille de pile dix fois supérieure à celle de x86_64.

Existe-t-il d'autres paramètres Java spécifiques à Linux Java s'exécutant sur une architecture Power PC?

2
Matt Bruzek

La façon de modifier la taille de la pile pour exécuter Java sur la ligne de commande est -Xss.

Dans ce cas c'est: Java -Xss1664k JavaApplication

Si vous utilisez des applications Java contenant des fichiers de configuration (tels que Cassandra ou ElasticSearch), la taille de la pile est souvent spécifiée dans la variable Java_OPTS du fichier de configuration.

1
Matt Bruzek

Assurez-vous que vous utilisez l'architecture ppc64el autre que powerpc. Powerpc correspond à la version 32 bits. Il est déconseillé de l'exécuter sur le serveur POWER8.

De l’autre côté, veuillez utiliser ppc64el, qui est la version 64 bits et devrait avoir la taille de pile correctement dimensionnée.

0
Breno Leitão

Éditer /etc/cassandra/cassandra-env.sh

Remplacez JVM_OPTS="$JVM_OPTS -Xss 1664k" par JVM_OPTS="$JVM_OPTS -Xss1792k"

Essayez de redémarrer cassandra. Ça va marcher.

référence

0
Harikrishnan