java 内存分析命令,java虚拟机内存分析 java进程分析常用命令 jmap jstat jstack jinfo jps...

一、java虚拟机内存分析

java使用的内存分:New(新生代)、Old(老年代)、Perm(永久内存,方法区)、线程栈

新生代包括:1个Eden,2个Survivor

Survivor的存在意义,就是减少被送到老年代的对象,进而减少Full GC的发生。Survivor的预筛选保证,只有经历16次Minor GC还能在新生代中存活的对象,才会被送到老年代。设置两个Survivor区最大的好处就是解决了碎片化。

设置比例:

NewRatio=X:老年代比新生代是X:1,默认值一般是2。

SurvivorRatio=X:Eden比Survivor是X:1:1(因为有2个Survivor区域),默认值一般是8。

常用词汇:

Minor GC:新生代回收

Major GC:老年代回收

YGC(年轻代GC次数)、YGCT(年轻代GC时间)、FGC、FGCT、GCT:变量统计的时间是应用程序启动累计到统计时刻。

jvm内存设置(New和Old):java -server -Xms64m -Xmx128m -XX:MaxNewSize=48m common.Main

附注:8.0开始PermSize相关设置不在支持。

二、java进程分析常用命令

jmap -heap pid:查看jvm内存使用整体情况。

jmap -histo[:live] pid | head -20:查看类的实例数以及占用的内存,live会触发垃圾回收。

jmap -dump:format=b,file=heap.bin pid:堆转储到文件。

jstat -gcutil pid:查看gc情况。

jstat -gc pid:查看gc情况,gc比gcutil信息更多。

jstack pid:查看线程情况,pid是jvm的线程id,nid是操作系统的线程id。

jinfo pid:查看java运行时环境变量,如编码格式,非默认jvm参数,命令行参数。

jps:Java Virtual Machine Process Status Tool,查看java进程列表的工具。

常用参数:

-l 显示包名

-m 显示参数

-v 显示JVM参数

jps调用示例:

jps -lm

8893 org.apache.catalina.startup.Bootstrap start

4977 jps.jar

5002 jps.Main class

5014 sun.tools.jps.Jps -lm

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值