配置位置:
Linux
修改/bin/catalina.sh
位置cygwin=false前。
JAVA_OPTS="-server -Xms1024m -Xmx1024m -XX:PermSize=64M-XX:MaxPermSize=128m"
windows
修改/bin/catalina.bat
第一行加上
JAVA_OPTS="-server -Xms1024m -Xmx1024m -XX:PermSize=64M-XX:MaxPermSize=128m"
案例:
-server: 多cpu情况下性能佳
-XX:+UseG1GC 使用G1垃圾回收器
-Xmx5g jvm最大内存5g
-Xms5g 促使jvm内存为5g,设置值和-xmx值相同,防止垃圾回收后重新分配内存
-Xss512k 每个线程堆栈的内存的大小
-XX:MaxGCPauseMills=200 垃圾回收最大停顿200毫秒
-XX:+PrintAdaptiveSizePolicy 关于survivor空间占用更详细的信息,关于survivor空间是否溢出,对象是否从young代移动到old代
-XX:G1HeapRegionSize=16m 设置的 G1 区域的大小。值是2的幂,范围是1 MB 到32 MB。目标是根据最小的 Java 堆大小划分出约 2048 个区域。
-XX:+UseStringDeduplication 使用字符串去重机制。
-XX:+PrintReferenceGC 用来跟踪系统内的(softReference)软引用,(weadReference)弱引用,(phantomReference)虚引用,显示引用过程
-XX:+ParallelRefProcEnabled 默认为false,并行的处理Reference对象,如WeakReference,除非在GC log里出现Reference处理时间较长的日志,否则效果不会很明显。
-XX:ParallelGCThreads=4 并行垃圾回收线程数
-XX:ConcGCThreads=4 CMS周期的所有阶段都以4个线程来执行
-XX:G1ReservePercent=10 默认值10 G1会预留一部分内存,制造假天花板,防止to-space的方式。
-Dspring.profiles.active=monitor -Xloggc:/usr/local/monitor-main-1.1.0.1.RELEASE/gc/Gc.log
-XX:+PrintGCDetails 打印GC详细信息