jprofiler监控jvm_怎么检测jps

jprofiler监控jvm_怎么检测jps很多人在学习java的时候只是对java粗略的学了一遍,很少有人能了解jvm层面的一些东西,比如我们想看目前有多少个java进程,可以在命令行执行jps。下面我们来说说jps的一些详细的用法。jps输出正字运行的相关进程信息jps-v输出传递给jvm参数jps-l输出模块名以及包名,如果是jar则出输jar文件全名jps-m输出传递给jvm参数jps-mlv输出进程号,包名,虚拟…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

很多人在学习java的时候只是对java粗略的学了一遍,很少有人能了解jvm层面的一些东西,比如我们想看目前有多少个java进程,可以在命令行执行jps。下面我们来说说jps的一些详细的用法。

jps

输出正字运行的相关进程信息

jps -v 输出传递给jvm参数

jps -l 输出模块名以及包名,如果是jar 则出输jar文件全名

jps -m 输出传递给jvm参数

jps -mlv 输出进程号,包名,虚拟机参数等所有信息

[[email protected] ~]# jps -mlv

12656 sun.tools.jps.Jps -mlv -Dapplication.home=/usr/java/jdk1.8.0_171 -Xms8m

16418 halo-latest.jar -Xms256m -Xmx256m

[[email protected] ~]#

jstat

监控指定Java进程的性能

-class显示类的加载信息的相关信息;

-compiler显示类编译相关信息;

-gc显示和gc相关的堆信息

-gccapacity堆内存统计

-gcmetacapacity元空间大小

-gcnew新生代信息

-gcnewcapacity新生代大小和使用情况

-gcold显示老年代和永久代的信息;

-gcoldcapacity老年代的大小

-gcutil显示垃圾收集信息

-gccause显示垃圾回收的相关信息

-printcompilation输出JIT编译的方法信息;

类的加载信息 jstat -class pid

[[email protected] ~]# jstat -class 16418

Loaded Bytes Unloaded Bytes Time

13293 23828.4 0 0.0 17.14

Loaded: class加载的的总数量

Bytes: 占用空间大小

Unloaded 未加载数量

Bytes 未加载占用空间大小

Time: 加载总耗时 秒

类编译的统计 jstat -compiler pid

[[email protected] ~]# jstat -compiler 16418

Compiled Failed Invalid Time FailedType FailedMethod

14109 3 0 62.83 1 org/springframework/core/xxxxxx

Compiled:编译数量。

Failed:编译失败数量

Invalid:不可用数量

Time:编译耗时 秒

FailedType:失败类型

FailedMethod:失败的方法

gc回收统计 jstat -gc pid

[[email protected] ~]# jstat -gc 16418

S0C S1C S0U S1U EC EU OC OU MC MU CCSC CCSU YGC YGCT FGC FGCT GCT

8704.0 8704.0 0.0 5466.6 69952.0 29822.5 174784.0 73377.5 75008.0 71393.1 9472.0 8916.8 53 1.199 3 0.293 1.492

[[email protected] ~]#

S0C:第一个幸存区的大小

S1C:第二个幸存区的大小

S0U:第一个幸存区的使用大小

S1U:第二个幸存区的使用大小

EC:伊甸园区的大小

EU:伊甸园区的使用大小

OC:老年代大小

OU:老年代使用大小

MC:方法区大小

MU:方法区使用大小

CCSC:压缩类空间大小

CCSU:压缩类空间使用大小

YGC:年轻代垃圾回收次数

YGCT:年轻代垃圾回收消耗时间

FGC:老年代垃圾回收次数

FGCT:老年代垃圾回收消耗时间

GCT:垃圾回收消耗总时间

堆内存统计 jstat -gccapacity pid

[[email protected] ~]# jstat -gccapacity 16418

NGCMN NGCMX NGC S0C S1C EC OGCMN OGCMX OGC OC MCMN MCMX MC CCSMN CCSMX CCSC YGC FGC

87360.0 87360.0 87360.0 8704.0 8704.0 69952.0 174784.0 174784.0 174784.0 174784.0 0.0 1114112.0 75008.0 0.0 1048576.0 9472.0 53 3

NGCMN:新生代最小容量

NGCMX:新生代最大容量

NGC:当前新生代容量

S0C:第一个幸存区大小

S1C:第二个幸存区的大小

EC:伊甸园区的大小

OGCMN:老年代最小容量

OGCMX:老年代最大容量

OGC:当前老年代大小

OC:当前老年代大小

MCMN:最小元数据容量

MCMX:最大元数据容量

MC:当前元数据空间大小

CCSMN:最小压缩类空间大小

CCSMX:最大压缩类空间大小

CCSC:当前压缩类空间大小

YGC:年轻代gc次数

FGC:老年代GC次数

新生代gc统计 jstat -gcnew pid

[[email protected] ~]# jstat -gcnew 16418

S0C S1C S0U S1U TT MTT DSS EC EU YGC YGCT

8704.0 8704.0 0.0 5466.6 6 15 4352.0 69952.0 30899.8 53 1.199

S0C:第一个幸存区大小

S1C:第二个幸存区的大小

S0U:第一个幸存区的使用大小

S1U:第二个幸存区的使用大小

TT:对象在新生代存活的次数

MTT:对象在新生代存活的最大次数

DSS:期望的幸存区大小

EC:伊甸园区的大小

EU:伊甸园区的使用大小

YGC:年轻代垃圾回收次数

YGCT:年轻代垃圾回收消耗时间

jmap

以获得运行中的jvm的堆的快照,从而可以离线分析堆,以检查内存泄漏,检查一些严重影响性能的大对象的创建,检查系统中什么对象最多, 各种对象所占内存的大小等等。可以使用jmap生成Heap Dump

jmap -heap 16418 打印heap空间的概要

[[email protected] ~]# jmap -heap 16418

Attaching to process ID 16418, please wait…

Debugger attached successfully.

Server compiler detected.

JVM version is 25.171-b11

using thread-local object allocation.

Mark Sweep Compact GC

Heap Configuration:

MinHeapFreeRatio = 40

MaxHeapFreeRatio = 70

MaxHeapSize = 268435456 (256.0MB)

NewSize = 89456640 (85.3125MB)

MaxNewSize = 89456640 (85.3125MB)

OldSize = 178978816 (170.6875MB)

NewRatio = 2

SurvivorRatio = 8

MetaspaceSize = 21807104 (20.796875MB)

CompressedClassSpaceSize = 1073741824 (1024.0MB)

MaxMetaspaceSize = 17592186044415 MB

G1HeapRegionSize = 0 (0.0MB)

Heap Usage:

New Generation (Eden + 1 Survivor Space): // 新生代区

capacity = 80543744 (76.8125MB) //分配的大小

used = 44269728 (42.218902587890625MB) //使用

free = 36274016 (34.593597412109375MB) //剩余

54.96358351556143% used

Eden Space: //伊甸园区

capacity = 71630848 (68.3125MB)

used = 38671896 (36.880393981933594MB)

free = 32958952 (31.432106018066406MB)

53.98776795159538% used

From Space: //年轻代 幸存者1

capacity = 8912896 (8.5MB)

used = 5597832 (5.338508605957031MB)

free = 3315064 (3.1614913940429688MB)

62.80598359949448% used

To Space: /年轻代 幸存者2

capacity = 8912896 (8.5MB)

used = 0 (0.0MB)

free = 8912896 (8.5MB)

0.0% used

tenured generation: //老年代

capacity = 178978816 (170.6875MB)

used = 75138528 (71.65768432617188MB)

free = 103840288 (99.02981567382812MB)

41.98179967846027% used

30511 interned Strings occupying 3634816 bytes.

jmap -dump:live,format=b,file=/home/tess.dump 16418 产生一个HeapDump文件

jmap -histo 16418 统计各个类的实例数目以及占用内存,并按照内存使用量从多至少的顺序排列。

jinfo

查看目标 Java 进程的参数,如传递给 Java 虚拟机的参数

jinfo 16418

jcmd

可以用来实现前面除了jstat 之外所有命令的功能。

文章来自网络,有问题可以在下面评论,技术问题可以私聊。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/193253.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 模电知识总结(一)

    模电知识总结(一)半导体的基本特性半导体的物理基础:1.掺杂特性2.热敏特性3.光敏特性2.本征半导体:原子排列整齐、晶格无缺陷、纯净的半导体(在热力学温度零度,由于共价键的束缚,价电子能量无法挣脱共价键的束缚,因此晶体中没有自由电子,此时半导体相当于绝缘体。)本征半导体的导电能力很差。(载流子浓度与原子密度相比很少)本征激发(热激发):由热能产生电子-空穴对的现象。随着温度升高,载流子浓度(指数)增加,其电阻率的温度系数是负的,这是半导体导电与金属导电的根本不同点。(相同温度下,锗的载流子浓度大于硅。)

    2022年6月20日
    28
  • js 分页插件_vue分页组件

    js 分页插件_vue分页组件一、前言:分页功能在项目中时常用到,一款可以快速实现分页功能的插件非常有必要,pagination–这款插件功能非常完美,几乎我所有项目中使用到分页的地方都会第一时间考虑到这个插件,但是其实有能力的同学最好还是使用原生的JS或者JQuery来开发分页功能,毕竟插件很多源码比较复杂,也并不是所有功能都做到尽善尽美,仅仅是提供一个方便而已。二、具体使用方法:(1)第一步,导入jq

    2025年5月25日
    3
  • 100套大数据可视化炫酷大屏Html5模板

    100套大数据可视化炫酷大屏Html5模板100套大数据可视化炫酷大屏Html5模板;包含行业:社区、物业、政务、交通、金融银行等,全网最新、最多,最全、最酷、最炫大数据可视化模板。源码地址 giteehttps://gitee.com/iGaoWei/big-data-view githubhttps://github.com/iGaoWei/BigDataView 使用说明 直接下载,使用浏览器访问静态页面即可。 git拉取代码$gitclonehttps://gitee….

    2022年9月7日
    3
  • numpy转torch.tensor_tensorflow numpy

    numpy转torch.tensor_tensorflow numpy要对tensor进行操作,需要先启动一个Session,否则,我们无法对一个tensor比如一个tensor常量重新赋值或是做一些判断操作,所以如果将它转化为numpy数组就好处理了。下面一个小程序讲述了将tensor转化为numpy数组,以及又重新还原为tensor:importtensorflowastfimg1=tf.constant(value=[[[[1],[2],[3],[4…

    2022年10月9日
    2
  • read digest_view the readme file

    read digest_view the readme file一、本文大纲系统调用的两种方式:中断门和快速调用_KUSER_SHARED_DATA结构使用cpuid指令判断当前CPU是否支持快速调用3环进0环需要更改的4个寄存器以ReadProcessMemory为例说明系统调用全过程重写ReadProcessMemory和WriteProcessMemoryint0x2e和sysenter都做了什么工作?二、中断门和快速调用以我的理解,系统调用,即从调用操作系统提供的3环API开始,到进0环,再到返回结果到3环的全过程

    2022年9月12日
    3
  • Maven入门(含实例教程)

    Maven入门(含实例教程)

    2020年11月12日
    223

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号