文章目录
- 前言
- JVM 调优常用命令
- 1. JPS
- 2. jmap
- 3. jstat
- 4. jstack
- 5. jinfo
- 6. 常用配置:
前言
如果您觉得有用的话,记得给博主点个赞,评论,收藏一键三连啊,写作不易啊^ _ ^。
而且听说点赞的人每天的运气都不会太差,实在白嫖的话,那欢迎常来啊!!!
JVM 调优常用命令
1. JPS
查看进程及其相关信息
2. jmap
用来生成dump文件和查看堆相关的各类信息的命令。
生成堆转储文件:
jmap -dump:format=b,file=heapdump.bin <pid>
-dump 参数生成堆转储文件
format=b 表示二进制格式保存
file=heapdump.bin 指定文件名为
查看堆内存使用信息
jmap -heap <pid>
强制执行full gc 后生成的堆转储文件
jmap -dump:live,format=b,file=heapdump.bin <pid>
-dump:live 表示只转储存活对象
生成堆中存活对象的实例信息
jmap -histo:live <pid> > xxx
最好导出到xxx文件中方便查看
生成堆中各个java类的实例统计信息
jmap -histo <pid> > xxx
最好导出到xxx文件中,方便查看
3. jstat
查看jvm运行时的状态信息
查看垃圾回收统计信息
jstat -gc <pid> <interval> <count>
说明:显示与JVM垃圾回收相关的统计信息,包括新生代和老年代的回收情况,吞吐量,堆内存使用情况等,可以分析垃圾回收的频率和效率,优化JVM的内存配置。
查看类加载信息
jstat -class <pid> <interval> <count>
说明:显示JVM中已加载类的数量,卸载类的数量以及加载类的速度等信息,可以用来分析类加载情况,检查是否有类加载过慢或者类加载器泄露等情况。
查看编译统计信息
jstat -compiler <pid> <interval> <count>
说明:显示JIT编译器编译的方法数量, 编译耗时等信息,
可以用来分析JIT编译器的性能,检查是否存在频繁编译,或者编译耗时过长的问题。
查看JVM的垃圾回收统计摘要信息
jstat -gcutil <pid> <interval> <count>
主要关注各个区域使用的百分比
<interval> <count>
<interval> 监控数据输出的时间间隔(单位:毫秒)
<count> 输出数据的次数
示例:
jstat -gc xxxx 1000 10
每1秒输出一次,总共输出10次
jstat -gc xxxx 1000
每秒输出一次,无输出次数限制
其他命令详情:
jstat命令查看jvm的GC信息
4. jstack
查看jvm线程快照的命令。
作用:
可以生成java应用程序中每个线程的的堆栈跟踪信息,
这对于分析应用程序的性能问题,或者查找死锁等并发问题非常有帮助。
5. jinfo
查看jvm参数和动态修改部分jvm参数常用参数:
查看JVM进程的配置信息
jinfo -flags <pid>
查看JVM进程的系统信息
jinfo -sysprops
6. 常用配置:
1、-Xms:初始化堆大小
2、-Xmx:最大堆大小
3、-Xmn:新生代的内存空间大小
4、-XX:SurvivorRatio
5、-Xss:每个线程的堆栈大小
6、-XX:PermSize:设置永久代初始值
7、- XX:MaxPermSize:设置永久代最大值