Не могу изменить размер кучи 7 котов - PullRequest
14 голосов
/ 18 июня 2011

Я установил размер кучи tomcat 7, добавив следующую строку в catalina.sh

export CATALINA_OPTS="-Xms512m -Xmx1024m"

, затем остановился и запустил tomcat.но при попытке получить размер кучи с помощью команды jmap -heap я могу заметить, что память не меняется:

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

, пожалуйста, сообщите.

Ответы [ 5 ]

61 голосов
/ 20 сентября 2012
sudo vi /etc/default/tomcat7

Найдите строку, которая начинается JAVA_OPTS="-Djava.awt.headless=true

и измените значение piddly -Xmx128m на -Xms512m -Xmx1024m

Если у вас более одного ядра ... -XX:+UseConcMarkSweepGCэто, вероятно, то, что вы хотите.

48 голосов
/ 08 июня 2012

Не изменять catalina.sh !! Этот файл не должен изменяться пользователем.Обновления Tomcat могут переопределить его.Вместо этого создайте файл с именем " setenv.sh " в вашем "$ CATALINA_BASE / bin" (в той же папке, что и catalina.sh).Установите там все переменные окружения.

setenv.sh - необязательный файл.Если он существует, он импортируется catalina.sh.И название подсказывает, что вы там положили.Это подходящее место для инициализации ваших $ CATALINA_OPTS, $ JAVA_OPTS и т. Д.

PS Вообще говоря, вам следует избегать подстройки файлов, которые могут измениться при наличии обновления пакета / дистрибутива и существует альтернативный подход к настройке.В этом случае файлы, такие как catalina.sh, /etc/tomcat7/tomcat7.conf, /etc/init.d/tomcatX и т. Д., Могут быть обновлены в режиме без вывода сообщений, и вы даже не заметите, что ваши изменения конфигурации были отменены.

17 голосов
/ 02 мая 2013

как насчет редактирования 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"
2 голосов
/ 18 июня 2011

Установите дополнительно export JAVA_OPTS="-Dcom.sun.management.jmxremote" и используйте JConsole для проверки потребления памяти кошками.

1 голос
/ 07 декабря 2011

Goto your catalina.sh

Добавьте эти строки в начале

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"

Затем запустите ваш кот, используя startup.sh

...