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.
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
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.
Utilisez la variable d'environnement CATALINA_OPTS
.
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 :)
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"
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
.
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).
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
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:
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.
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
.
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
Dans mon cas, un fichier /etc/sysconfig/Tomcat5.conf remplaçait tous les paramètres de /etc/Tomcat5/Tomcat5.conf.