JVM-----调优指令

1、调优指令

  1. 设置JVM内存的参数有四个:

    -Xmx Java Heap最大值,默认值为物理内存的1/4,最佳设值应该视物理内存大小及计算机内其他内存开销而定;

    -Xms Java Heap初始值,Server端JVM最好将-Xms和-Xmx设为相同值,开发测试机JVM可以保留默认值;

    -Xmn Java Heap Young区大小,不熟悉最好保留默认值;

    -Xss 每个线程的Stack大小,不熟悉最好保留默认值;

  2. 常见参数设置:

参数及其默认值描述
-XX:-UseSerialGC启用串行GC
-XX:-UseParallelGC启用并行GC
-XX:-UseConcMarkSweepGC对老生代采用并发标记交换算法进行GC
-XX:MaxNewSize=size新生成对象能占用内存的最大值
-XX:MaxPermSize=64m老生代对象能占用内存的最大值
-XX:NewSize=2.125m新生代对象生成时占用内存的默认值
-XX:NewRatio=2新生代内存容量与老生代内存容量的比例

3.调优案例

set CATALINA_OPTS= -Xmx4096m -Xms4096m -Xmn1536m -Xss1m 

-XX:SurvivorRatio=8 -XX:MetaspaceSize=256M -XX:MaxMetaspaceSize=256M  

-XX:+UseG1GC -XX:ConcGCThreads=4 -XX:G1HeapRegionSize=8m -XX:+PrintGCDetails

2.JVM调优总结:

Jvm调优的重点是垃圾回收(gc,garbage collection)和内存管理。垃圾回收的时候会导致
整个虚拟机暂停服务。因此,应该尽可能地缩短垃圾回收的处理时间。

在JVM启动参数中,可以设置跟内存、垃圾回收相关的一些参数设置,让jvm获得最佳性能.

1、开启-server模式,(启动虽然慢,但是运行效率高)

2、针对JVM堆的设置一般,可以通过-Xms -Xmx限定其最小、最大值,为了防止垃圾收集器在最小、最大之间收缩堆而产生额外的时间,我们通常把最大、最小设置为相同的值

3、年轻代和年老代将根据默认的比例(1:2)分配堆内存年轻代和年老代设置多大才算合理?这个我问题毫无疑问是没有答案的,否则也就不会有调优。(原则是是减少GC的频率和Full GC的次数)

4、在配置较好的机器上(比如多核、大内存),可以为年老代选择并行收集算法: -XX:+UseParallelOldGC ,默认为Serial收集

5、线程堆栈的设置:每个线程默认会开启1M的堆栈,用于存放栈帧、调用参数、局部变量等,对大多数应用而言这个默认值太了,一般256K就足用。理论上,在内存不变的情况下,减少每个线程的堆栈,可以产生更多的线程,但这实际上还受限于操作系统。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值