J'essayais d'ajuster la taille de tas initiale 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.
Quel est le problème avec ces options?
Vous ne devez pas utiliser =
. Utilisez simplement ceci:
export CATALINA_OPTS="-Xms512M -Xmx1024M"
Utilisez la commande suivante pour augmenter Java la taille de segment de mémoire pour Tomcat7 (distributions Linux)) correctement:
echo 'export CATALINA_OPTS="-Xms512M -Xmx1024M"' > /usr/share/Tomcat7/bin/setenv.sh
Vous pourriez ne pas avoir besoin d'avoir exportation, ajoutez simplement cette ligne dans catalina.sh:
CATALINA_OPTS="-Xms512M -Xmx1024M"
setenv.sh est préférable, car vous pouvez facilement transférer une telle configuration d'une machine à une autre ou d'une version de Tomcat à une autre. catalina.sh passe d'une version de Tomcat à une autre. Mais vous pouvez conserver votre setenv.sh inchangé avec n’importe quelle version de Tomcat.
Un autre avantage est qu’il est plus facile de suivre l’historique de vos modifications si vous l’ajoutez à votre système de sauvegarde ou de gestion de versions. Si vous regardez comment vous définissez les changements dans l'historique, vous ne verrez que vos propres modifications. Par contre, si vous utilisez catalina.sh, vous verrez toujours non seulement vos modifications, mais également celles apportées avec chaque nouvelle version de Tomcat.
Je viens de découvrir ceci et j'ai implémenté la solution de Nathan:
ajoutez 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, créez-le et
chown root:root it
chmod 755 it
Et puis redémarrez Tomcat et vérifiez-le avec
ps aux | grep logging
Ce qui devrait juste prendre l’instance et montrer le Java parms
Après avoir passé du bon temps sur ce sujet. J'ai trouvé que c'est ce à quoi le setenv.bat doit ressembler. Aucun "caractères ne sont acceptés dans le fichier de commandes.
set CATALINA_OPTS = -Xms512m -Xmx1024m -XX: PermSize = 128m -XX: MaxPermSize = 768m
echo hello "% CATALINA_OPTS%"
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 ça marche.
Système d'exploitation: 14.04.1-Version du serveur Ubuntu: Apache Tomcat/7.0.52 (Ubuntu) Serveur construit: 30 juin 2016 01:59:37 Numéro de 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"
Attention aux changements dans les distributions Debian! J'ai essayé de changer CATALINA_OPTS
dans Debian 7 et les résultats où Tomcat n’a plus commencé. J'ai donc résolu ce problème en modifiant la propriété Java_OPTS
au lieu de CATALINA_OPTS
, comme ça
export Java_OPTS="-Xms512M -Xmx1024M"
Allez dans le répertoire "Tomcat Directory"/bin
si Linux, créez ensuite setenv.sh sinon si Windows, créez ensuite setenv.bat
contenu du fichier setenv. *:
export CATALINA_OPTS="$CATALINA_OPTS -Xms512m"
export CATALINA_OPTS="$CATALINA_OPTS -Xmx8192m"
export CATALINA_OPTS="$CATALINA_OPTS -XX:MaxPermSize=256m"
après cela, redémarrez Tomcat avec de nouveaux paramètres.
explication et information complète est ici
http://crunchify.com/how-to-change-jvm-heap-setting-xms-xmx-of-Tomcat/
Si cela ne fonctionne pas dans votre machine centos 7 "export CATALINA_OPTS =" - Xms512M -Xmx1024M "", vous pouvez modifier la mémoire de tas à partir de vi /etc/systemd/system/Tomcat.service, puis cette valeur affichée dans votre Tomcat à l'aide de ps -ef | grep Tomcat.