JAVA排查bug的相关命令

jamp

主要用于打印指定Java进程(或核心文件、远程调试服务器)的共享对象内存映射或堆内存细节。

举例

[root@iZwz9hv1phm24s3jicy8x1Z crm]# ps -ef|grep java
root     2529802       1  0 Jul11 ?        00:37:01 java -jar Project_CRM-1.0.4-SNAPSHOT.jar
root     2700426 2691206  0 23:48 pts/0    00:00:00 grep --color=auto java

#这里查看java堆的使用情况
[root@iZwz9hv1phm24s3jicy8x1Z crm]# jmap -heap 2529802
Attaching to process ID 2529802, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.121-b13

using thread-local object allocation.
Mark Sweep Compact GC

#堆内存的初始化配置
Heap Configuration:
	#JVM堆的最小空闲比率
   MinHeapFreeRatio         = 40
   #JVM堆的最大空闲比率
   MaxHeapFreeRatio         = 70
   #设置JVM堆的最大大小
   MaxHeapSize              = 517996544 (494.0MB)
   #设置新生代的默认大小
   NewSize                  = 11141120 (10.625MB)
   #设置新生代的最大大小
   MaxNewSize               = 172621824 (164.625MB)
   #设置老年代的大小
   OldSize                  = 22413312 (21.375MB)
   #设置新生代和老年代的大小比率
   NewRatio                 = 2
   #设置新生代中eden区和suvivor区的大小比例
   SurvivorRatio            = 8
   #设置元空间触发FGC的初始阈值
   MetaspaceSize            = 21807104 (20.796875MB)
   #class metadata存储在native memory中,其大小默认是不受限的,可以通过-XX:MaxMetaspaceSize来限制
   CompressedClassSpaceSize = 1073741824 (1024.0MB)
   #如果开启了指针压缩,则CompressedClassSpace分配在MaxMetaspaceSize里头
   MaxMetaspaceSize         = 17592186044415 MB
   #MaxMetaspaceSize用于设置metaspace区域的最大值
   G1HeapRegionSize         = 0 (0.0MB)

#堆的使用情况
Heap Usage:
#新生代堆的使用情况
New Generation (Eden + 1 Survivor Space):
   capacity = 28835840 (27.5MB)
   used     = 10300232 (9.823066711425781MB)
   free     = 18535608 (17.67693328857422MB)
   35.72024258700284% used
Eden Space:
   capacity = 25690112 (24.5MB)
   used     = 7154504 (6.823066711425781MB)
   free     = 18535608 (17.67693328857422MB)
   27.849251883370535% used
From Space:
   capacity = 3145728 (3.0MB)
   used     = 3145728 (3.0MB)
   free     = 0 (0.0MB)
   100.0% used
To Space:
   capacity = 3145728 (3.0MB)
   used     = 0 (0.0MB)
   free     = 3145728 (3.0MB)
   0.0% used
#年老代堆的使用情况   
tenured generation:
   capacity = 63827968 (60.87109375MB)
   used     = 45382288 (43.27992248535156MB)
   free     = 18445680 (17.591171264648438MB)
   71.10094433838157% used

24824 interned Strings occupying 2558640 bytes.

jps

用来查看所有的java进程的pid号

[root@iZwz9hv1phm24s3jicy8x1Z ~]# jps
2777472 Jps
2529802 jar
[root@iZwz9hv1phm24s3jicy8x1Z ~]# jps
2777518 Jps
2529802 jar

#-l显示完整程序的名称,或者命令的完整包名
[root@iZwz9hv1phm24s3jicy8x1Z ~]# jps -l
2778459 sun.tools.jps.Jps
2529802 Project_CRM-1.0.4-SNAPSHOT.jar

jstat(参考)

jstat(Java Virtual Machine Statistics Monitoring Tool)是JDK提供的一个可以监控Java虚拟机各种运行状态信息的命令行工具。它可以显示Java虚拟机中的类加载、内存、垃圾收集、即时编译等运行状态的信息。

使用举例

#查看类加载的统计信息,显示类加载、卸载数量、总空间和装载耗时的统计信息。
[root@iZwz9hv1phm24s3jicy8x1Z ~]# jstat -class 2529802
Loaded  Bytes  Unloaded  Bytes     Time   
 12230 22614.5      119   178.4     221.46
#显示即时编译的方法、耗时等信息。
[root@iZwz9hv1phm24s3jicy8x1Z ~]# jstat -compiler 2529802
Compiled Failed Invalid   Time   FailedType FailedMethod
    9228      1       0    46.74          1 org/springframework/boot/loader/jar/Handler openConnection
#显示堆各个区域内存使用和垃圾回收的统计信息。
[root@iZwz9hv1phm24s3jicy8x1Z ~]# jstat -gc 2529802
 S0C    S1C    S0U    S1U      EC       EU        OC         OU       MC     MU    CCSC   CCSU   YGC     YGCT    FGC    FGCT     GCT   
3072.0 3072.0  0.0   3072.0 25088.0   1655.5   62332.0    57731.3   69848.0 66279.7 8920.0 8309.3    295    2.801  26      3.611    6.412
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

北海冥鱼未眠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值