打开jvm可视化监控
jvisualvm
打开java监视和管理控制台
jconsole
jvm调优参数1.8
-XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=128m -Xms1024m -Xmx1024m -Xmn256m -Xss256k -XX:SurvivorRatio=8 -XX:+UseConcMarkSweepGC1
-XX:MetaspaceSize=128m (元空间默认大小) -XX:MaxMetaspaceSize=128m (元空间最大大小) -Xms1024m (堆最大大小) -Xmx1024m (堆默认大小) -Xmn256m (新生代大小) -Xss256k (棧最大深度大小) -XX:SurvivorRatio=8 (新生代分区比例 8:2) -XX:+UseConcMarkSweepGC (指定使用的垃圾收集器,这里使用CMS收集器) -XX:+PrintGCDetails (打印详细的GC日志)
JDK8之后把-XX:PermSize 和 -XX:MaxPermGen移除了,取而代之的是 -XX:MetaspaceSize=128m (元空间默认大小) -XX:MaxMetaspaceSize=128m (元空间最大大小) JDK 8开始把类的元数据放到本地化的堆内存(native heap)中,这一块区域就叫Metaspace,中文名叫元空间。使用本地化的内存有什么好处呢?最直接的表现就是java.lang.OutOfMemoryError: PermGen 空间问题将不复存在,因为默认的类的元数据分配只受本地内存大小的限制,也就是说本地内存剩余多少
java -jar -Xms1024m -Xmx1536m -XX:PermSize=128M -XX:MaxPermSize=256M car.jar
java -jar unitsystem_clouds-admin-web-1.0.jar > log.file_web 2>&1 &
说明:1、堆内存:最小1024M,最大1536M。(对象使用的内存)
2、永久内存:最小128M,最大256M。(类使用的内存,PermGen)
window
jar包启动设置内存,jdk
@echo off
:start
echo 上传程序 -Xms1024m -Xmx1536m -XX:PermSize=128M -XX:MaxPermSize=256M
set path=E:\jdk\jdk1.8.0_77\bin
START "pams" "%path%\javaw" -jar -Xms1500m -Xmx1500m E:\eclipse4.5.1\workspace2\pams-master\pams-spring-boot\target\pams-spring-boot.jar
pause