Хотите подтвердить размер кучи, который использует tomcat - PullRequest
6 голосов
/ 22 декабря 2011

Я нахожусь на Ubuntu, и мне нужно подтвердить, что tomcat использует настройку размера кучи.

Как я могу это сделать?

Я пробовал jmap, но это не таккажется, на сервере, могу ли я как-то отдельно загрузить его?

Ответы [ 3 ]

7 голосов
/ 27 февраля 2013

Проверьте параметры процесса для -Xmx256m, используя команду ps:

bahadir@dev1:/$ ps -ef | grep java
tomcat6    804     1 13 15:29 ?        00:00:23 /usr/lib/jvm/java-6-openjdk/bin/java 
-Djava.util.logging.config.file=/var/lib/tomcat6/conf/logging.properties 
-Djava.awt.headless=true -Xmx256m -XX:+UseConcMarkSweepGC 
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager 
-Djava.endorsed.dirs=/usr/share/tomcat6/endorsed 
-classpath /usr/share/tomcat6/bin/bootstrap.jar 
-Dcatalina.base=/var/lib/tomcat6 
-Dcatalina.home=/usr/share/tomcat6 
-Djava.io.tmpdir=/tmp/tomcat6-tmp org.apache.catalina.startup.Bootstrap start
5 голосов
/ 22 декабря 2011

Размер кучи, используемый tomcat (как и любым другим java-приложением), определяется параметром jvm -Xmx.

Так что если ваш tomcat работает как служба Windows, вы должны создать переменную среды CATALINA_OPTS = -Xms64m -Xmx256m.

Затем посмотрите файлы tomcat-install / bin / catalina.sh (.bat) и startup.sh (.bat) и проверьте параметр JAVA_OPTS. -Xmx1024m или что-то подобное.

Хорошие ссылки: http://javahowto.blogspot.com/2006/06/6-common-errors-in-setting-java-heap.html http://www.coderanch.com/t/87422/Tomcat/increase-java-heap-size

1 голос
/ 12 февраля 2018

Вы можете сделать это с помощью jmap, довольно легко.

$ jmap -heap [PID]

Например, сначала найдите PID:

$ ps aux | grep tomcat
user123  61906 ... etc

Затем присоедините к процессу с помощью jmap, используя параметр -heap:

$ jmap -heap 61906

Это печатает следующий довольно подробный вывод, в котором вы сможете определить, используются ли ваши настройки:

Attaching to process ID 61907, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 24.80-b11

using parallel threads in the new generation.
using thread-local object allocation.
Concurrent Mark-Sweep GC
Heap Configuration:
   MinHeapFreeRatio = 40
   MaxHeapFreeRatio = 70
   MaxHeapSize      = 25769803776 (24576.0MB)
   NewSize          = 6442450944 (6144.0MB)
   MaxNewSize       = 6442450944 (6144.0MB)
   OldSize          = 12884901888 (12288.0MB)
   NewRatio         = 2
   SurvivorRatio    = 4
   PermSize         = 21757952 (20.75MB)
   MaxPermSize      = 1073741824 (1024.0MB)
   G1HeapRegionSize = 0 (0.0MB)

Heap Usage:
New Generation (Eden + 1 Survivor Space):
   capacity = 5368709120 (5120.0MB)
   used     = 2529188080 (2412.021713256836MB)
   free     = 2839521040 (2707.978286743164MB)
   47.10979908704758% used
Eden Space:
   capacity = 4294967296 (4096.0MB)
   used     = 2525489264 (2408.4942474365234MB)
   free     = 1769478032 (1687.5057525634766MB)
   58.80112908780575% used
From Space:
   capacity = 1073741824 (1024.0MB)
   used     = 3698816 (3.5274658203125MB)
   free     = 1070043008 (1020.4725341796875MB)
   0.3444790840148926% used
To Space:
   capacity = 1073741824 (1024.0MB)
   used     = 0 (0.0MB)
   free     = 1073741824 (1024.0MB)
   0.0% used
concurrent mark-sweep generation:
   capacity = 19327352832 (18432.0MB)
   used     = 10172808584 (9701.546272277832MB)
   free     = 9154544248 (8730.453727722168MB)
   52.63425711956289% used
Perm Generation:
   capacity = 195915776 (186.83984375MB)
   used     = 107975920 (102.97386169433594MB)
   free     = 87939856 (83.86598205566406MB)
   55.11343813374172% used
...