Comment régler les paramètres de mémoire JVM de Tomcat 5.5 sans utiliser le programme de configuration
j'ai besoin de configurer les paramètres de mémoire Tomcat dans le cadre d'une installation plus grande, donc configurer manuellement tomcat avec l'application de configuration après le fait est hors de question. J'ai pensé que je pouvais juste jeter les paramètres de mémoire JVM dans la variable D'environnement JAVA_OPTS, mais je suis en train de tester ça avec jconsole pour voir si ça fonctionne et ça... ne fait pas.
comme dans le commentaire ci-dessous, CATALINA_OPTS ne fonctionne pas non plus. Pour l'instant, le seul moyen de le faire marcher est de passer par le Tomcat. GUI de configuration, et ce n'est pas une solution acceptable pour mon problème.
13 réponses
la suggestion de Serhii fonctionne et voici plus de détails.
si vous regardez dans le répertoire bin de votre installation, vous verrez catalina.sh ou. chauve-souris de scripts. Si vous regardez dans ces vous verrez qu'ils ont une setenv.sh ou setenv.bat script respectivement, s'il existe, pour définir les variables d'environnement. Les variables d'environnement pertinentes sont décrites dans les commentaires le sommet de catalina.SH / bat. Pour les utiliser, Créez, par exemple, un fichier $ $ CATALINA_HOME/bin/setenv.sh avec contenu
export JAVA_OPTS="-server -Xmx512m"
Pour Windows vous aurez besoin, dans setenv.chauve-souris, quelque chose comme
set JAVA_OPTS=-server -Xmx768m
J'espère que cela aidera, Glenn
créer un setenv.(sh|bat) fichier dans le tomcat/bin avec les variables d'environnement que vous souhaitez modifier.
le script catalina vérifie si le script setenv existe et l'exécute pour définir les variables d'environnement. De cette façon, vous pouvez changer les paramètres en une seule instance de tomcat et il est plus facile de les copier dans une autre instance.
probablement votre application de configuration a créé le script setenv et c'est pourquoi tomcat ignore l'environnement variable.
si vous utilisez Ubuntu 11.10 et apache-tomcat6 (installation à partir d'apt-get), Vous pouvez mettre cette configuration à /usr/share/tomcat6/bin/catalina.sh
# -----------------------------------------------------------------------------
JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms1024m \
-Xmx1024m -XX:NewSize=512m -XX:MaxNewSize=512m -XX:PermSize=512m \
-XX:MaxPermSize=512m -XX:+DisableExplicitGC"
après cela, vous pouvez vérifier votre configuration via ps-ef / grep tomcat :)
pratique pour les machines virtuelles linux; utilisez 75% de votre mémoire système totale pour Tomcat. YAY AWK.
Mettre au début de "{tomcat}/bin/startup.sh"
export CATALINA_OPTS="-Xmx`cat /proc/meminfo | grep MemTotal | awk '{ print *0.75 } '`k"
j'utilise setenv.bat
table des matières:
==============setenv.bat============
set JAVA_OPTS=-XX:MaxPermSize=256m -Xms256M -Xmx768M -Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=7777,server=y,suspend=n %JAVA_OPTS%
====================================
il permet également le débogage et définit le port de débogage à 7777, et ajoute le contenu précédent de JAVA_OPTS
.
juste pour ajouter au commentaire précédent, la documentation de l'outil en ligne de commande pour la mise à jour des paramètres de service Tomcat (si Tomcat est un service sous Windows) est ici. Cet outil met à jour le registre avec les paramètres appropriés. Donc, si vous voulez mettre à jour le paramètre de mémoire max pour le service Tomcat, vous pouvez lancer ceci (à partir du répertoire tomcat/bin), en supposant le nom de service par défaut de Tomcat5:
tomcat5 //US//Tomcat5 --JvmMx=512
j'aime l'idée de mettre à jour la mémoire tomcat6 en fonction de la mémoire du serveur disponible (c'est cool parce que je n'ai pas à changer la configuration après la mise à niveau du matériel). Voici ma (un peu de mémoire étendue d'installation):
export CATALINA_OPTS=" - Xmx
`cat /proc/meminfo | grep MemTotal | awk '{ print *0.75 } '`
k-Xms`cat /proc/meminfo | grep MemTotal | awk '{ print *0.75 } '`
k-XX:NewSize=`cat /proc/meminfo | grep MemTotal | awk '{ print *0.15 } '`k-XX:PermSize=`cat /proc/meminfo | grep MemTotal | awk '{ print *0.15 } '`
k-XX:MaxPermSize=`cat /proc/meminfo | grep MemTotal | awk '{ print *0.15 } '`
k"
Mettre en: "{tomcat}/bin/startup.sh" (ex: "/usr/share/tomcat6/bin" pour Ubuntu 10.10)
Je ne suis pas sûr que ce soit une solution applicable pour vous. Mais la seule façon de surveiller les paramètres de mémoire tomcat ainsi que le nombre de connexions, etc. qui fonctionne réellement pour nous, c'est Sonde Lambda.
il montre la plupart des informations dont nous avons besoin pour tunning Tomcat. Nous l'avons testé avec Tomcat 5.5 et 6.0 et il fonctionne bien malgré le statut bêta et la date de dernière mise à jour fin 2006.
si vous démarrez Tomcat manuellement (pas en tant que service), alors la variable D'environnement CATALINA_OPTS est la solution. Si vous souhaitez démarrer un service, les réglages sont probablement stocké quelque part dans le registre. J'ai Tomcat 6 installé dans ma machine et j'ai trouvé les réglages à la HKLM\SOFTWARE\Apache Software Foundation\Procrun 2.0\Tomcat6\Parameters\Java
clé.
si vous exécutez Tomcat sur Windows, vous pouvez utiliser l'application soignée "Tomcat Monitor" qui est livrée avec Tomcat.
Allez à l'onglet Java. En bas, sous la rubrique" Java Options", vous trouverez 3 champs d'entrée:
- mémoire initiale____ MB
- mémoire maximale____ MB
- taille de la pile de fils ______ KB
il suffit de modifier votre VOTRE votre catalina/bin/startup.sh script. Ajouter les commandes suivantes:
#Adjust it to the size you want. Ignore the from bit.
export CATALINA_OPTS="-Xmx1024m"
#This should point to your catalina base directory
export CATALINA_BASE=/usr/local/tomcat
#This is only used if you editing the instance of your tomcat
/usr/share/tomcat6/bin/startup.sh
dans mon cas il y avait a /etc/sysconfig/tomcat5.fichier de configuration écrasant tous les paramètres dans /etc / tomcat5 / tomcat5.conf