J'ai défini la taille du tas de Tomcat 7 en ajoutant la ligne suivante dans catalina.sh
export CATALINA_OPTS="-Xms512m -Xmx1024m"
puis arrêté et démarré le Tomcat. mais lorsque j'ai essayé d'obtenir la taille du tas en utilisant la commande jmap -heap, je peux remarquer que la mémoire ne change pas:
Heap Configuration:
MinHeapFreeRatio = 40
MaxHeapFreeRatio = 70
MaxHeapSize = 526385152 (502.0MB)
NewSize = 1048576 (1.0MB)
MaxNewSize = 4294901760 (4095.9375MB)
OldSize = 4194304 (4.0MB)
NewRatio = 2
SurvivorRatio = 8
PermSize = 16777216 (16.0MB)
MaxPermSize = 67108864 (64.0MB)
Heap Usage:
PS Young Generation
Eden Space:
capacity = 99352576 (94.75MB)
used = 9643144 (9.196418762207031MB)
free = 89709432 (85.55358123779297MB)
9.705982862487632% used
From Space:
capacity = 4063232 (3.875MB)
used = 0 (0.0MB)
free = 4063232 (3.875MB)
0.0% used
To Space:
capacity = 5177344 (4.9375MB)
used = 0 (0.0MB)
free = 5177344 (4.9375MB)
0.0% used
PS Old Generation
capacity = 37748736 (36.0MB)
used = 21889008 (20.874984741210938MB)
free = 15859728 (15.125015258789062MB)
57.98606872558594% used
PS Perm Generation
capacity = 60948480 (58.125MB)
used = 31496008 (30.03693389892578MB)
free = 29452472 (28.08806610107422MB)
51.67644541750672% used
s'il vous plaît donnez votre avis.
Définir en plus export Java_OPTS="-Dcom.Sun.management.jmxremote"
et utilisez JConsole pour inspecter la consommation de mémoire des tomcats.
Sudo vi /etc/default/Tomcat7
Trouvez la ligne qui commence Java_OPTS="-Djava.awt.headless=true
et changez le petit -Xmx128m
à -Xms512m -Xmx1024m
Si vous avez plus d'un cœur ...-XX:+UseConcMarkSweepGC
est probablement ce que vous voulez.
Ne changez pas catalina.sh
!! Ce fichier n'est pas censé être modifié par l'utilisateur. Les mises à jour de Tomcat peuvent le remplacer. Créez plutôt un fichier appelé "setenv.sh" dans votre "$ CATALINA_BASE/bin" (même dossier que catalina.sh
). Définissez ici toutes vos variables d'environnement.
setenv.sh
est un fichier facultatif. S'il existe, il est importé par catalina.sh
. Et le nom suggère ce que vous y mettez. C'est le bon endroit pour initialiser vos $ CATALINA_OPTS, $ Java_OPTS, etc.
P.S. D'une manière générale, vous devez éviter de modifier les fichiers qui peuvent changer avec la mise à jour du package/distribution fournie et une approche de configuration alternative existe. Dans ce cas, des fichiers comme catalina.sh
, /etc/Tomcat7/Tomcat7.conf
, /etc/init.d/tomcatX
etc peuvent être mis à jour silencieusement et vous ne remarquerez même pas que vos modifications de configuration sont annulées.
que diriez-vous de modifier etc/default/Tomcat7
# You may pass JVM startup parameters to Java here. If unset, the default
# options will be: -Djava.awt.headless=true -Xmx128m -XX:+UseConcMarkSweepGC
#
# Use "-XX:+UseConcMarkSweepGC" to enable the CMS garbage collector (improved
# response time). If you use that option and you run Tomcat on a machine with
# exactly one CPU chip that contains one or two cores, you should also add
# the "-XX:+CMSIncrementalMode" option.
Java_OPTS="-Djava.awt.headless=true -Xmx1280m -XX:+UseConcMarkSweepGC"
Accédez à votre catalina.sh
Ajoutez ces lignes au début
Java_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8
-server -Xms512m -Xmx1024m
-XX:NewSize=256m -XX:MaxNewSize=256m -XX:PermSize=256m
-XX:MaxPermSize=256m -XX:+DisableExplicitGC"
Ensuite, démarrez votre Tomcat en utilisant startup.sh