没有合适的资源?快使用搜索试试~ 我知道了~
JVM系列之性能调优参考手册(实践篇).pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 2 下载量 4 浏览量
2021-08-03
16:14:20
上传
评论 1
收藏 523KB PDF 举报
温馨提示
试读
12页
JVM系列之性能调优参考手册(实践篇).pdf,资源分享达人
资源推荐
资源详情
资源评论
JVM系列之性能调优参考手册(实践篇)
系列博客专栏:
JVM系列博客专栏
SpringBoot系列博客
1、前言介绍
在前面章节的学习,我们对JVM的体系架构等等有了比较详细的了解,所以可以对这些理论进行实践,
当然只是通过一些example,实践的生产环境要复杂得多,所以本博客只能作为学习参考资料。一般来
说,JVM内部是经过很多的实践和优化的,所以一般调休是先通过java提供的工具进行性能问题排查,
找出影响性能的代码,然后迫不得已才可以考虑调整JVM参数,进行JVM参数调优。
2、标准参数
标准参数以-开头,所有jvm都实现了该参数的功能
-help
查看java命令帮助信息
-server -client
两个参数用于设置虚拟机使用何种运行模式,client模式启动比较快,但运行时性能和内存管理效
率不如server模式。相反,server模式启动比client慢,但是运行时性能和内存管理效率比较高。
64bit版本默认设置-server
-version
查看java版本,
-cp -classpath
指定classpath路径
-jar
指定运行一个jar包,jar包中manifest文件中必须指定Main-class
-verbose
打印jvm载入类的相关信息
-verbose:gc
打印gc信息
-verbose:jni
打印native方法调用信息
等等,...
3、非标准参数
非标准参数以-X开头,给jvm实现这些参数的功能,但是不是所有的jvm都有这些功能。同时在不
同JDK版本也有可能变动,所以说这些参数是非标准参数
-Xint
解释执行
-Xcomp
编译执行,第1次使用就编译成本地代码
-Xmixed
混合模式,jvm自己决定
[www@localhost ~]$ java -Xint -version
java version "11.0.9" 2020-10-20 LTS
-Xms
eg: -Xms1g 指定jvm初始内存为1g
-Xmx
eg: -Xmx1g 指定jvm最大可用内存为1g
-Xmn
eg: -Xmn1g 指定年轻代大小为1g,增加年轻代容量会缩小年老代容量
-Xss
-Xss1m ,设置线程堆栈大小,默认1m
-Xloggc
eg: -Xloggc:gc.log ,将gc日志记录到gc.log文件中
-Xprof
跟踪正运行的程序,并将跟踪数据在标准输出输出
等等,...
4、不稳定参数
no Stable,不稳定参数以 -XX 开头,使用最多的参数类型,非标准化参数,相对不稳定,主要用
于JVM调优和Debug
Boolean类型
格式: -XX[+/-]<name> , + 表示启用, - 表示禁用
例子: -XX:+UseConcMarkSweepGC ,表示启用CMS类型的垃圾回收器
非Boolean类型
格式: -XX<name>=<value> 表示 name 属性的值是 value
例子: -XX:MaxGCPauseMillis=500
-XX:PermSize
非堆,也可以说是方法区,内存初始大小
-XX:MaxPermSize
方法区,最大内存大小
-XX:-UseSerialGC
使用串行GC
-XX:-UseParallelGC
使用并行GC
-XX:-UseConcMarkSweepGC
对老年代使用CMS(Concurrent Mark And Sweep)GC
Java(TM) SE Runtime Environment 18.9 (build 11.0.9+7-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.9+7-LTS, interpreted mode)
[www@localhost ~]$ java -Xcomp -version
java version "11.0.9" 2020-10-20 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.9+7-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.9+7-LTS, compiled mode)
[www@localhost ~]$ java -Xmixed -version
java version "11.0.9" 2020-10-20 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.9+7-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.9+7-LTS, mixed mode)
[www@localhost ~]$
参数 含义 说明
-XX:CICompilerCount 最大并行编译数
如果设置大于1,会提高编译
速度,但是同样影响系统稳
定性,会增加jvm奔溃的可能
-XX:InitialHeapSize=100M 初始化堆大小 简写-Xms100M
-XX:MaxHeapSize=100M 最大堆大小 简写-Xms100M
-XX:NewSize=20M 设置年轻代的大小
-XX:OldSize=50M 设置老年代的大小
-XX:MetaspaceSize=50M 设置方法区的大小
-XX:MaxMetaspaceSize=50M 方法区最大大小
-XX:+UseParallelGC 使用UseParallelGC
并行收集器,作用于新生
代,吞吐量优先
-XX:+UseParallelOldGC 使用UseParallelOldGC
并行收集器,作用于老年
代,吞吐量优先
-XX:+UseConcMarkSweepGC 使用CMS
作用于老年代,停顿时间优
先
-XX:+UseG1GC 使用G1GC
作用于新生代,老年代,停
顿时间优先
-XX:NewRatio 新老生代的比值
比如-XX:Ratio=4,表示新生
代:老年代=1:4,也就是新
生代占整个堆内存的1/5
-XX:SurvivorRatio 两个S区和Eden区的比值
比如-XX:SurvivorRatio=8,
也就是(S0+S1):Eden=2:8,
也就是一个S占整个新生代的
1/10
-XX:+HeapDumpOnOutOfMemoryError 启动堆内存溢出打印
当JVM堆内存发生溢出时,也
就是OOM,自动生成dump
文件
-XX:HeapDumpPath=heap.hprof 指定堆内存溢出打印目录
表示在当前目录生成一个
heap.hprof文件
-XX:+PrintGCDetails -
XX:+PrintGCTimeStamps -
XX:+PrintGCDateStamps -Xloggc:gc.log
打印GC日志,保存到gc.log
-Xss128k 设置每个线程的堆栈大小 经验值是3000-5000最佳
-XX:MaxTenuringThreshold=15 提升年老代的最大临界值 默认值为 15
-XX:InitiatingHeapOccupancyPercent 启动并发GC周期时堆内存使用占比 默认值为 45.
-XX:G1HeapWastePercent 允许的浪费堆空间的占比
默认是10%,如果并发标记
可回收的空间小于10%,则不
会触发MixedGC
-XX:MaxGCPauseMillis=200M G1最大停顿时间
暂停时间不能太小,太小的
话就会导致出现G1跟不上垃
圾产生的速度。从而造成full
gc。
-XX:ConcGCThreads=n 并发垃圾收集器使用的线程数量
默认值随JVM运行的平台不同
而不同
-XX:G1MixedGCLiveThresholdPercent=65
混合垃圾回收周期中要包括的旧区域
设置占用率阈值
默占用率为 65%
剩余11页未读,继续阅读
资源评论
- huihui__ll2024-03-31超赞的资源,感谢资源主分享,大家一起进步!
- fengcuiyu2021-08-27用户下载后在一定时间内未进行评价,系统默认好评。
smileNicky
- 粉丝: 2w+
- 资源: 406
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- xyctf:从入门到精通的实用指南.zip
- mmqrcode1714153659780.png
- Screenshot_2024-04-27-06-08-58-486_com.baidu.xin.aiqicha.jpg
- 基于Javaweb+Tomcat+MySQL的大学生公寓管理系统+sql文件.zip
- 实训作业基于javaweb的订单管理系统源码+数据库+实训报告.zip
- 多机调度问题贪心算法基于最小堆和贪心算法求解多机调度问题.zip
- 基于同态加密技术的匿名电子投票系统源码.zip
- Pyqt5项目框架-PyQt项目开发实践
- 基于C通过MQTT的智能农业大棚管理系统(本科毕业设计)
- python+CNN的网络入侵检测算法源码.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功