文章目录
- 前言
 - 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:设置永久代最大值



















