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?
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.
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.
É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.