① Caused by: java.lang.OutOfMemoryError: GC overhead limit exceeded 超过GC开销限制
② Caused by: java.lang.OutOfMemoryError: Java heap space
绿色版本的tomcat, 直接修改catalina.bat文件,和linux系统不一样,windows系统下环境变量的设定以set命令开头,linux系统的shell运行时是会export环境变量的。
set JAVA_OPTS=-server -Xms1024m -Xmx2048m -XX:PermSize=256m -XX:MaxPermSize=512m
set JAVA_OPTS=-Xms1024m -Xmx2048m -Xmn512m -Xss512k -XX:MaxPermSize=1024m -XX:-UseGCOverheadLimit
非稳态选项使用说明
-XX:+<option> 启用option
-XX:-<option> 不启用option
-XX:<option>=<number> 设定option的值为数字类型,可跟单位,例如 32k, 1024m, 2g
-XX:<option>=<string> 设定option的值为字符串,例如-XX:HeapDumpPath=./dump.core
参数说明:
-server:一定要作为第一个参数,在多个CPU时性能佳
-Xms(初始堆大小):初始Heap大小,使用的最小内存,cpu性能高时此值应设的大一些
-Xmx(最大堆大小):java heap最大值,使用的最大内存
-Xmn(年轻代大小):young generation(年轻代大小)的heap大小,一般设置为Xmx的3、4分之一
-Xss:每个线程的Stack(堆栈)大小
-XX:PermSize(设置持久代初始值):设定内存的永久保存区域
-XX:MaxPermSize(设置持久最大值):设定最大内存的永久保存区域
-XX:-UseGCOverheadLimit 限制GC的运行时间。如果GC耗时过长,就抛OOM
https://jingyan.baidu.com/article/f3ad7d0f19d07709c3345b9a.html