67 votes

Tomcat 7 : Comment définir correctement la taille initiale du tas ?

J'ai essayé d'ajuster la taille initiale du tas d'une instance de tomcat 7 (CentOS, java -version : 1.6.0_25-b06) en ajoutant la ligne suivante à catalina.sh :

export CATALINA_OPTS="-Xms=512M -Xmx=1024M"

Le démarrage de tomcat échoue et enregistre le message suivant dans catalina.out :

Invalid initial heap size: -Xms=512m
Could not create the Java virtual machine.

Qu'est-ce qui ne va pas avec ces options ?

17 votes

Ne modifiez pas catalina.sh. Voyez la bonne façon de faire décrite dans ce billet : http://stackoverflow.com/a/10950387/926057

1voto

Attention aux changements dans les distributions Debian ! J'ai essayé de changer CATALINA_OPTS dans ma Debian 7 et le résultat est que tomcat ne démarre plus. J'ai donc résolu ce problème en changeant la propriété JAVA_OPTS à la place de CATALINA_OPTS comme ceci

export JAVA_OPTS="-Xms512M -Xmx1024M"

1voto

APA Points 166

Je viens de tomber sur ce sujet et j'ai mis en œuvre la solution de Nathan :

ajouter la ligne (en modifiant les valeurs si nécessaire) :

export JAVA_OPTS="-Xms512M -Xmx1024M"

à /usr/share/tomcat7/bin/setenv.sh

Si ce fichier n'existe pas, il faut le créer et

chown root:root it
chmod 755 it

Puis redémarrer tomcat et vérifiez-le avec

ps aux | grep logging

qui devrait simplement récupérer l'instance et afficher les parms java

1voto

mdev Points 31

Cela fonctionne même sans utiliser le mot-clé "export". C'est ce que j'ai dans mon setenv.sh (/usr/share/tomcat7/bin/setenv.sh) et cela fonctionne.

OS : 14.04.1-Ubuntu Version du serveur : Apache Tomcat/7.0.52 (Ubuntu) Serveur construit : Jun 30 2016 01:59:37 Numéro du serveur : 7.0.52.0

JAVA_OPTS="-Dorg.apache.catalina.security.SecurityListener.UMASK=`umask` -server -Xms6G -Xmx6G -Xmn1400m -XX:HeapDumpPath=/Some/logs/ -XX:+HeapDumpOnOutOfMemoryError -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:SurvivorRatio=8 -XX:+UseCompressedOops -Dcom.sun.management.jmxremote.port=8181 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"
JAVA_OPTS="$JAVA_OPTS -Dserver.name=$HOSTNAME"

1voto

Après avoir passé beaucoup de temps sur ce sujet. J'ai trouvé que le fichier setenv.bat doit ressembler à ceci . Aucun caractère " n'est accepté dans le fichier batch.

set CATALINA_OPTS=-Xms512m -Xmx1024m -XX:PermSize=128m -XX:MaxPermSize=768m

echo hello "%CATALINA_OPTS%"

0voto

Birendra Rawat Points 909

Si cela ne fonctionne pas dans votre machine centos 7 "export CATALINA_OPTS="-Xms512M -Xmx1024M"" alors vous pouvez changer la mémoire de tas à partir du fichier vi /etc/systemd/system/tomcat.service puis cette valeur s'affiche dans votre tomcat à l'aide de ps -ef|grep tomcat.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X