jvm常用工具

本文详细介绍了JVM中的线程状态转换,并重点讲解了jstat工具的使用,包括监控类加载、编译情况、垃圾收集等各项指标,帮助开发者分析和优化Java应用的性能。
摘要由CSDN通过智能技术生成

1. jps
用来查看JVM信息,所有具有访问权限的java进程的具体状态。包括PID, 进程启动路径以及启动参数等。 可以理解为linux上的PS 子集。
命令格式: jps [-q] [-mlvV] [<hostid>]
-q  只输出pid
-m 输出传递给main方法的参数
-l    输出应用程序住类的完整包名,或者是应用程序jar文件的完整路径
-v  输出传给JVM的参数
```
sudo -u admin jps
28580 Jps
6272 Bootstrap
sudo -u admin jps -q
26626
6272
sudo -u admin jps -l
6272 org.apache.catalina.startup.Bootstrap
28298 sun.tools.jps.Jps
sudo -u admin jps -m
6272 Bootstrap start
27633 Jps -m
sudo -u admin jps localhost:7001
28070 Jps
6272 Bootstrap
```
2. jmap
简介: 打印java进程中的所有对象情况,例如产生哪些对象,以及对象数量
命令格式: jmap [option] <pid>
2.1 sudo -u admin jmap -dump:live,format=b,file=heap 5929 使用二进制形式,将JVMheap内容输出到outputFile, live 为可选项,表示只输出活的对象到文件。
2.2  jmap -finalizerinfo <PID>  打印正在等候回收的对象信息
sudo -u admin jmap -finalizerinfo 5929
Attaching to process ID 5929, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 24.65-b04-internal
Number of objects pending for finalization: 0


2.3 jmap -heap <PID> 打印heap的概要信息,GC使用算法等信息;
sudo -u admin jmap -heap 5929
Attaching to process ID 5929, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 24.65-b04-internal


using parallel threads in the new generation.
using thread-local object allocation.
Concurrent Mark-Sweep GC


Heap Configuration:
   MinHeapFreeRatio = 40
   MaxHeapFreeRatio = 70
   MaxHeapSize      = 1342177280 (1280.0MB)
   NewSize          = 335544320 (320.0MB)
   MaxNewSize       = 335544320 (320.0MB)
   OldSize          = 5439488 (5.1875MB)
   NewRatio         = 2
   SurvivorRatio    = 10
   PermSize         = 100663296 (96.0MB)
   MaxPermSize      = 629145600 (600.0MB)
   G1HeapRegionSize = 0 (0.0MB)


Heap Usage:
New Generation (Eden + 1 Survivor Space):
   capacity = 307625984 (293.375MB)
   used     = 64660584 (61.665138244628906MB)
   free     = 242965400 (231.7098617553711MB)
   21.019220535024765% used
Eden Space:
   capacity = 279707648 (266.75MB)
   used     = 57251752 (54.599525451660156MB)
   free     = 222455896 (212.15047454833984MB)
   20.468425661353386% used
From Space:
   capacity = 27918336 (26.625MB)
   used     = 7408832 (7.06561279296875MB)
   free     = 20509504 (19.55938720703125MB)
   26.537512837441316% used
To Space:
   capacity = 27918336 (26.625MB)
   used     = 0 (0.0MB)
   free     = 27918336 (26.625MB)
   0.0% used
concurrent mark-sweep generation:
   capacity = 1006632960 (960.0MB)
   used     = 126755184 (120.88316345214844MB)
   free     = 879877776 (839.1168365478516MB)
   12.591996192932129% used
Perm Generation:
   capacity = 161787904 (154.29296875MB)
   used     = 114364384 (109.06637573242188MB)
   free     = 47423520 (45.226593017578125MB)
   70.68784573660092% used


42485 interned Strings occupying 4413184 bytes.


2.4 jmap -histo[:live] 打印每个类的实例数目,内存占用情况,类全名。
sudo -u admin jmap -histo:live 5929
 num     #instances         #bytes  class name
----------------------------------------------
   1:        200445       29877368  <constMethodKlass>
   2:        200445       27273048  <methodKlass>
   3:         17102       20779408  <constantPoolKlass>
   4:        184717       20052536  [B
   5:        187747       19194584  [C
   6:         17097       12442624  <instanceKlassKlass>
   7:         13082       11212768  <constantPoolCacheKlass>
   8:         19783        7304520  [I
   9:        184531        4428744  java.lang.String
  10:         48520        3881600  java.lang.reflect.Method
  11:          5919        3642984  <methodDataKlass>
  12:         60424        3383744  org.codehaus.groovy.runtime.metaclass.MetaMethodIndex$Entry
  13:         98877        3164064  java.util.HashMap$Entry
  14:      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值