Linux下修改TOMCAT_HOME/bin/catalina.sh,在其中加入,可以放在CLASSPATH=下面:
JAVA_OPTS="-server -XX:PermSize=512M -XX:MaxPermSize=1024m -Xms2048m -Xmx2048m"
-server:启用 JDK的 server 版本;
-Xms:Java虚拟机初始化时堆的最小内存,一般与 Xmx配置为相同值,这样的好处是GC不必再为扩展内存空间而消耗性能;
-Xmx:Java虚拟机可使用堆的最大内存;
-XX:PermSize:Java虚拟机永久代大小;
-XX:MaxPermSize:Java虚拟机永久代大小最大值;
2.验证
设置成功后我们可以利用JDK自带的工具进行验证,这些工具都在JAVA_HOME/bin目录下:
1)jps:用来显示本地的java进程,以及进程号,进程启动的路径等。
2)jmap:观察运行中的JVM 物理内存的占用情况,包括Heap size , Perm size 下载地址 等。
进入命令行模式后,进入JAVA_HOME/bin目录下,然后输入jps命令:
#jps
显示以下结果
2340 Bootstrap
6696 Jps
其中 Bootstrap进程就是我们启动了的 Tomcat,其进程号为2340.
然后我们利用 jmap工具查看其内存相关配置:
#jmap -heap 2340
显示以下结果
Attaching to process ID 2340, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 24.65-b04
using thread-local object allocation.
Parallel GC with 4 thread(s)
Heap Configuration:
MinHeapFreeRatio = 0
MaxHeapFreeRatio = 100
MaxHeapSize = 2147483648 (2048.0MB) //最大堆内存
NewSize = 1310720 (1.25MB)
MaxNewSize = 17592186044415 MB
OldSize = 5439488 (5.1875MB)
NewRatio = 2
SurvivorRatio = 8
PermSize = 536870912 (512.0MB) //永久代初始大小
MaxPermSize = 1073741824 (1024.0MB) //永久代最大大小
G1HeapRegionSize = 0 (0.0MB)
Heap Usage:
PS Young Generation
Eden Space:
capacity = 537919488 (513.0MB)
used = 247606720 (236.13616943359375MB)
free = 290312768 (276.86383056640625MB)
46.03044238471613% used
From Space:
capacity = 89128960 (85.0MB)
used = 0 (0.0MB)
free = 89128960 (85.0MB)
0.0% used
To Space:
capacity = 89128960 (85.0MB)
used = 0 (0.0MB)
free = 89128960 (85.0MB)
0.0% used
PS Old Generation
capacity = 1431830528 (1365.5MB)
used = 0 (0.0MB)
free = 1431830528 (1365.5MB)
0.0% used
PS Perm Generation
capacity = 536870912 (512.0MB)
used = 20770360 (19.80815887451172MB)
free = 516100552 (492.1918411254883MB)
3.86878103017807% used
12005 interned Strings occupying 1039352 bytes.
从结果验证配置是否成功了。