web-dev-qa-db-fra.com

Comment régler les paramètres de la mémoire de la machine virtuelle Java Tomcat 5.5 sans utiliser le programme de configuration

Je dois configurer les paramètres de mémoire de Tomcat dans le cadre d'une installation plus importante. Il est donc impossible de configurer manuellement Tomcat avec l'application de configuration. Je pensais pouvoir insérer les paramètres de mémoire de la machine virtuelle Java dans la variable d’environnement Java_OPTS, mais j’essaie de vérifier cela avec jconsole pour voir si cela fonctionne et si ... ça ne fonctionne pas.

Selon le commentaire ci-dessous, CATALINA_OPTS ne fonctionne pas non plus. Jusqu'à présent, le seul moyen de le faire fonctionner consiste à utiliser l'interface graphique de configuration de Tomcat, ce qui n'est pas une solution acceptable pour mon problème.

42
red

La suggestion de Serhii fonctionne et voici quelques détails supplémentaires.

Si vous regardez dans le répertoire bin de votre installation, vous verrez les scripts catalina.sh Ou .bat. Si vous regardez dans ceux-ci, vous verrez qu'ils exécutent un script Setenv.sh ou setenv.bat, s'il existe, pour définir les variables d'environnement . Les variables d'environnement pertinentes sont décrites dans les commentaires du top de catalina.sh/bat. Pour les utiliser, créez par exemple un fichier $ CATALINA_HOME/bin/setenv.sh avec son contenu.

export Java_OPTS="-server -Xmx512m"

Pour Windows, vous aurez besoin, dans setenv.bat, de quelque chose comme

set Java_OPTS=-server -Xmx768m

J'espère que cela aide, Glenn

71
Glenn

Créez un fichier setenv. (Sh | bat) dans le répertoire Tomcat/bin avec les variables d'environnement à 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 ne pouvez modifier les paramètres que pour une seule instance de Tomcat et il est plus facile de la copier dans une autre instance.

Votre application de configuration a probablement créé le script setenv et c'est pourquoi Tomcat ignore les variables d'environnement.

24
Serxipc

Utilisez la variable d'environnement CATALINA_OPTS.

5
matt b

Si vous utilisez Ubuntu 11.10 et Apache-Tomcat6 (installation à partir d’apt-get), vous pouvez placer cette configuration dans /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"

Ensuite, vous pouvez vérifier votre configuration via ps -ef | grep Tomcat :)

5
martinusadyh

Pratique pour les machines virtuelles Linux; Utilisez 75% de la mémoire totale de votre système pour Tomcat. Yay AWK.

Mettez au début de "{Tomcat} /bin/startup.sh"

export CATALINA_OPTS="-Xmx`cat /proc/meminfo | grep MemTotal | awk '{ print $2*0.75 } '`k"
3
DrTune

J'utilise le contenu setenv.bat suivant:

==============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 sur 7777, et ajoute le contenu précédent de Java_OPTS.

3
Dmitriy Kochergin

J'aime l'idée de configurer la mémoire de Tomcat6 en fonction de la mémoire du serveur disponible (c'est cool, car je n'ai pas à modifier la configuration après la mise à niveau matérielle). Voici mon (configuration de mémoire un peu étendue):

export CATALINA_OPTS = "- Xmx`cat /proc/meminfo | grep MemTotal | awk '{ print $2*0.75 } '`k -Xms`cat /proc/meminfo | grep MemTotal | awk '{ print $2*0.75 } '`k -XX: NewSize = `cat /proc/meminfo | grep MemTotal | awk '{ print $2*0.15 } '`k -XX: MaxNewSize = `cat /proc/meminfo | grep MemTotal | awk '{ print $2*0.15 } '`k -XX: PermSize = `cat /proc/meminfo | grep MemTotal | awk '{ print $2*0.15 } '`k -XX: MaxPermSize = `cat /proc/meminfo | grep MemTotal | awk '{ print $2*0.15 } '`k"

Placez-le dans: "{Tomcat} /bin/startup.sh" (par exemple, "/ usr/share/Tomcat6/bin" pour Ubuntu 10.10).

2
Ondrej Kvasnovsky

Pour ajouter au commentaire précédent, la documentation de l'outil de ligne de commande permettant de mettre à jour les paramètres du service Tomcat (si Tomcat est exécuté en tant que service sous Windows) est ici . Cet outil met à jour le registre avec les paramètres appropriés . Ainsi, si vous souhaitez mettre à jour le paramètre de mémoire maximale pour le service Tomcat, vous pouvez l'exécuter (à partir du répertoire Tomcat/bin), en prenant le nom de service par défaut Tomcat5:

Tomcat5 //US//Tomcat5 --JvmMx=512
2
Cozzman

Si vous exécutez Tomcat sous Windows, vous pouvez utiliser la superbe application "Tomcat Monitor" fournie avec Tomcat.

Allez sur l'onglet Java. En bas, sous la zone de texte "Options Java", vous trouverez 3 champs de saisie:

  • Pool de mémoire initial_ __ MB
  • Pool de mémoire maximum_ __ Mo
  • Taille de la pile de fils_ ____ KB
1
Erel Segal-Halevi

Pas sûr que ce sera une solution applicable pour vous. Mais le seul moyen de surveiller les paramètres de mémoire Tomcat, le nombre de connexions, etc., qui fonctionne réellement pour nous est Lambda Probe .

Il montre la plupart des informations dont nous avons besoin pour l'optimisation Tomcat. Nous l’avons testée avec Tomcat 5.5 et 6.0 et tout s’est bien déroulé malgré la version bêta et la date de la dernière mise à jour, fin 2006.

1
FoxyBOA

Si vous voulez démarrer Tomcat manuellement (et non en tant que service), la variable d’environnement CATALINA_OPTS est la solution. Si vous le démarrez en tant que service, les paramètres sont probablement stockés quelque part dans le registre. Tomcat 6 est installé sur ma machine et les paramètres sont définis à la touche HKLM\SOFTWARE\Apache Software Foundation\Procrun 2.0\Tomcat6\Parameters\Java.

1
kgiannakakis

Modifiez simplement votre script catalina/bin/startup.sh. Ajoutez 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

Sailab: http://www.facejar.com/member/page-id-477.html

0
Sailab Rahi

Dans mon cas, un fichier /etc/sysconfig/Tomcat5.conf remplaçait tous les paramètres de /etc/Tomcat5/Tomcat5.conf.

0
Torge