java虚拟机命令_Java虚拟机内存模型-命令大全

jps: 查看显示虚拟机进程以及进程的配置、环境信息

jps -h :查看使用帮助

jps -q :查看PID

jps -m :查看main函数参数 嵌入式为null

jps -l :查看mainclass的全名

jps -v :查看jvm传递参数

jps -V :隐藏jvm传递参数

jcmd: 打印java进程中的线程信息 虚拟机信息 基本类信息

jcmd -l : 查看当前机器所有jvm进程列表

jcmd -f file:从文件file中读取命令,然后在目标Java进程上调用这些命令

jcmd -h : 查看帮助信息

jcmd PID PerfCounter.print : 查看指定进程的性能统计信息是什么?

jcmd PID help: 列出当前java进程可执行的操作有哪些?

jcmd PID help JFR.dump :查看当前命令操作选项是什么?

jcmd PID DB.start : 启动DB

jcmd PID VM.uptime : 查看VM启动时长

jcmd PID GC.class_histogram:查看系统类统计信息

jcmd PID Thread.print : 查看线程堆栈信息

jcmd PID GC.heap_dump FILE_NAME : 查看 JVM 的Heap Dump

jcmd PID VM.system_properties :查看JVM属性设置

jcmd PID VM.flags : 查看JVM的启动参数

jcmd PID VM.command_line:查看JVM的启动命令行

jcmd PID GC.run_finalization:对 JVM 执行 java.lang.System.runFinalization()

jcmd PID GC.run : 对 JVM 执行 java.lang.System.gc() 【什么时候GC 视情况而定】

jcmd PID PerfCounter.print :查看jvm相关性能参数

jcmd PID VM.version:查看当前进程的版本

jconsole: jvm动态图形化视图

线程使用情况展示

查看线程长时间停顿的问题 1. 等待外部资源【网络、设备、中间件连接】超时等2. 死循环 3. 锁等待

内存使用情况展示

对应某个区 如:Eden区 GC日志 如:新生代赋值算法copy 耗时 几次 老年代 标记清除整理 耗时 几次

类使用情况展示

对应类的元数据信息的使用情况

GC活动情况展示

内存监控和线程监控 均会出现GC日志。

bin/jsoncole.exe 运行即可。

jhat: 读取内存堆转储 便于分析

jhat -h :查看帮助使用

jhat -J-Xmx512M heap.html : 查看堆分析情况

http://ip:7000/ : 查看heap.html 分析:对象数量、大小、引用、实例

支持输入OQL语句进行查询分析

jmap: 堆转储信息查看 Jvm内存使用情况查看

jmap -h :查看使用帮助

jmap -J-d64 -heap pid : 查看当前线程的堆中的对象使用情况

jmap -dump:live,format=b,file=xxx.txt PID:使用hprof二进制形式,输出jvm的heap内容的存活的对象信息到文件

jmap -dump:format=b,file=outfile PID 配合MAT(内存分析工具)

jmap -finalizerinfo PID :查看当前线程等待回收的对象

jmap -heap PID :打印heap的概要信息,GC使用的算法,heap(堆)的配置及JVM堆内存的使用情况.

jmap -histo:live PID | less :打印每个class的实例数目,内存占用,类全名信息. VM的内部类名字开头会加上前缀”*”. 如果live子参数加上后,只统计活的对象数量.

jmap -histo PID>A.log日志将其保存,在一段时间后,使用文本对比工具,可以对比出GC回收了哪些对象。

jmap -permstat PID: 查看类加载和持久层的信息:类加载器名字,活动状态,引用地址,父类加载器和加载的类的数量以及字符串的数量和占用内存数.

jmap -F 强迫.在pid没有相应的时候使用-dump或者-histo参数. 在这个模式下,live子参数无效.

jmap -J-Xmx512M 传递参数jvm

jinfo:系统属性查看以及设置

jinfo pid: 查看当前jvm进程的全部参数和系统属性

jinfo -flag name pid :查看pid的参数

jinfo -flag [+|-]name pid :动态开启或者关闭对应名称的参数 不用重启jvm

jinfo -flag name=value pid:修改指定参数的值

jinfo -flags pid:查看全部参数

jinfo -sysprops pid:查看全部系统属性

jstack: java进程栈信息转储 查看

jstack -h :查看帮助

jstack pid : 查看线程运行情况

jstack -l PID : 查看输出、监看死锁等

jstack -l PID | grep ‘java.lang.Thread.State’ | wc -l : 统计当前进程的线程数

jstack 检测CPU占用过高的程序

1. top

2. top -H -p 11342 查看当前进程中cpu占用高线程 --18889

3. printf “%x\n” 18889 :转换线程ID --12b7

4. jstack 11342|grep 12b7 -A 40 : 定位CPU高的程序

jstack pid : thread dump

thread dump:

kill -3 pid :查看线程运行情况

kill -9 pid :强制杀死进程

pkill -kill -t terminal1(按终端踢,terminal1为所踢用户的终端)

pkill -u haha(按用户名踢,haha为用户名)

死锁,Deadlock(重点关注)

等待资源,Waiting on condition(重点关注)

等待获取监视器,Waiting on monitor entry(重点关注)

阻塞,Blocked(重点关注)

执行中,Runnable

暂停,Suspended

对象等待中,Object.wait() 或 TIMED_WAITING

停止,Parked

jstat: 查看GC信息和 类装载信息查看

jstat -h :查看帮助

jstat -gcutil 11342 100 10 :通知jvm在控制台打印PID为11342的gc情况,每间隔100毫秒打印一次,打印10次。

jstat -class pid:显示加载class的数量,及所占空间等信息。

jstat -compiler pid:显示VM实时编译的数量等信息。

jstat -gc pid: 可以显示gc的信息,查看gc的次数,及时间。其中最后五项,分别是young gc的次数,young gc的时间,full gc的次数,full gc的时间,gc的总时间。

jstat -gccapacity: 可以显示,VM内存中三代(young,old,perm)对象的使用和占用大小,如:PGCMN显示的是最小perm的内存使用量,PGCMX显示的是perm的内存最大使用量,PGC是当前新生成的perm内存占用量,PC是但前perm内存占用量。其他的可以根据这个类推, OC是old内纯的占用量。

jstat -gcnew pid:new对象的信息。

jstat -gcnewcapacity pid:new对象的信息及其占用量。

jstat -gcold pid:old对象的信息。

jstat -gcoldcapacity pid:old对象的信息及其占用量。

jstat -gcpermcapacity pid: perm对象的信息及其占用量。

jstat -util pid :统计gc信息统计。

jstat -printcompilation 3024 250 6是每250毫秒打印一次,一共打印6次,还可以加上-h3每三行显示一下标题。

jvisualvm:jvm监控图形化工具 分析运行和堆转储

安装目录:jvisualvm.exe 运行即可

需要根据情况进行配置。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值