Comment régler les parameters de la mémoire JVM Tomcat 5.5 sans utiliser le programme de configuration

Je dois configurer les parameters de mémoire de Tomcat dans le cadre d’une installation plus importante. Il est donc inutile de configurer manuellement tomcat avec l’application de configuration, une fois le problème résolu. Je pensais que je pouvais simplement jeter les parameters de la mémoire JVM dans la variable d’environnement JAVA_OPTS, mais je teste cela avec jconsole pour voir si cela fonctionne et … ça ne fonctionne pas.

Selon le commentaire ci-dessous, CATALINA_OPTS ne fonctionne pas non plus. Jusqu’à présent, la seule manière de le faire fonctionner est via l’interface graphique de configuration Tomcat, et ce n’est pas une solution acceptable pour mon problème.

La suggestion de Serhii fonctionne et voici plus de détails.

Si vous regardez dans le répertoire bin de votre installation, vous verrez des scripts catalina.sh ou .bat. Si vous regardez dans ceux-ci, vous verrez qu’ils exécutent respectivement 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 en haut de catalina.sh/bat. Pour les utiliser, créez, par exemple, un fichier $ CATALINA_HOME / bin / setenv.sh avec le contenu

export JAVA_OPTS="-server -Xmx512m" 

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

 set JAVA_OPTS=-server -Xmx768m 

J’espère que ça aide, 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 pouvez remplacer les parameters par une seule instance de tomcat et la copier plus facilement vers une autre instance.

Probablement votre application de configuration a créé le script setenv et c’est pourquoi tomcat ignore les variables d’environnement.

Utilisez la variable d’environnement CATALINA_OPTS .

Si vous utilisez Ubuntu 11.10 et apache-tomcat6 (installation depuis 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" 

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 $2*0.75 } '`k" 

J’utilise les contenus setenv.bat suivants:

 ==============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 active également le débogage et définit le port de débogage sur 7777, et ajoute le contenu précédent de JAVA_OPTS .

Pour append au commentaire précédent, la documentation de l’outil de ligne de commande pour la mise à jour des parameters du service Tomcat (si Tomcat est exécuté en tant que service sous Windows) est disponible . Cet outil met à jour le registre avec les parameters appropriés. Donc, si vous souhaitez mettre à jour le paramètre de mémoire max pour le service Tomcat, vous pouvez l’exécuter (à 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 configurer la mémoire tomcat6 en fonction de la mémoire disponible du serveur (c’est cool parce que je n’ai pas à modifier la configuration après la mise à niveau du matériel). Voici mon (une 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”

Mettez-le dans: “{tomcat} /bin/startup.sh” (par exemple “/ usr / share / tomcat6 / bin” pour Ubuntu 10.10)

Pas sûr que ce soit une solution applicable pour vous. Lambda Probe est le seul moyen de contrôler les parameters de mémoire de Tomcat ainsi que le nombre de connexions, etc.

Il montre la plupart des informations dont nous avons besoin pour la configuration de Tomcat. Nous l’avons testé avec Tomcat 5.5 et 6.0 et cela fonctionne bien malgré le statut de la version bêta et la date de la dernière mise à jour à la fin de 2006.

Si vous démarrez Tomcat manuellement (pas en tant que service), la variable d’environnement CATALINA_OPTS est la solution. Si vous le démarrez en tant que service, les parameters sont probablement stockés quelque part dans le registre. Tomcat 6 est installé sur ma machine et j’ai trouvé les parameters sur la HKLM\SOFTWARE\Apache Software Foundation\Procrun 2.0\Tomcat6\Parameters\Java .

Si vous exécutez Tomcat sous Windows, vous pouvez utiliser l’application soignée “Tomcat Monitor” fournie avec Tomcat.

Allez dans l’onglet Java. En bas, sous le textarea “Options Java”, vous trouverez 3 champs de saisie:

  • Pool de mémoire initial _ __ Mo
  • Pool de mémoire maximal _ __ Mo
  • Taille de la stack de fils _ ____ Ko

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

Dans mon cas, il y avait un fichier /etc/sysconfig/tomcat5.conf écrasant tous les parameters de /etc/tomcat5/tomcat5.conf