2011-12-21 26 views

Trả lời

3

Kích thước heap được sử dụng bởi tomcat (như bất kỳ ứng dụng java nào khác) được xác định bởi tham số jvm -Xmx.

Vì vậy, nếu tomcat của bạn chạy dưới dạng dịch vụ cửa sổ, bạn sẽ tạo biến môi trường CATALINA_OPTS = -Xms64m -Xmx256m.

Sau đó, hãy xem tệp tomcat-install/bin/catalina.sh (.bat) và startup.sh (.bat) và kiểm tra tham số JAVA_OPTS -Xmx1024m hoặc tương tự.

liên kết tốt: 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

+0

cảm ơn, nhưng tôi muốn xác nhận nếu tomcat đã chọn cài đặt của tôi. Tôi nghĩ rằng jmap có thể làm điều đó bằng cách nào đó. – codecompleting

+0

Sau đó, bạn có thể kết nối với quá trình tomcat đang chạy bằng JVisualVM (công cụ từ jdk) và nó sẽ cho bạn thấy jvm args tomcat đã được khởi chạy cùng. – Zorkus

5

Kiểm tra các thông số quá trình cho -Xmx256m sử dụng ps lệnh:

[email protected]:/$ 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 
+0

đôi khi thông tin bộ nhớ không được hiển thị. có lẽ vì bạn không thiết lập và sử dụng mặc định – fanchyna

+0

Trong trường hợp của tôi, sau khi lệnh xuất CATALINA_OPTS = "- Xms3072M -Xmx4096M" nó vẫn không hiển thị –

0

Bạn có thể làm điều này với jmap, khá dễ dàng.

$ jmap -heap [PID] 

Ví dụ, đầu tiên tìm ra PID:

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

Sau đó, gắn với quá trình với jmap sử dụng -heap tùy chọn:

$ jmap -heap 61906 

này in những điều sau đây, sản lượng khá dài dòng trong bạn sẽ có thể biết được liệu cài đặt của mình có đang được sử dụng hay không:

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 
Các vấn đề liên quan