JVM学习笔记(八)常用命令和常用工具

8.2 常用命令

8.2.1 jps

查看java 进程 jps -l

8.2.2 jinfo

实时查看和调整JVM参数

1)查看某个java进程的name属性

jinfo -flag MaxHeapSize PID
jinfo -flag UseG1GC PID

2)修改参数

只有被标记为 manageable 的flag才能被实时修改

jinfo -flag [+|-] PID

jinfo -flag = PID

3) 查看曾经被赋值过的一些参数

jinfo -flags PID

8.2.3 jstat

1)查看虚拟机性能统计信息

2)查看类装载信息

查看某个java 进程的类装载信息,每1000毫秒输出一次,共输出10次
jstat -class PID 1000 10

JVM学习笔记(八)常用命令和常用工具
3)查看垃圾收集信息

jstat -gc PID 1000 10

8.2.4 jstack

查看线程堆栈信息

jstack PID

8.2.5 jmap

生成堆转储快照

1)打印出堆内存相关信息

-XX:PrintFlagsFinal -Xms300M -Xmx300M
jmap -heap PID

2)dump 出堆内存相关信息

jmap -dump:format=b,file=heap.hprof PID

3) 设置堆内存溢出,自动dump文件

-XX:HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=heap.hprof

8.3 常用工具

8.3.1 jconsole

JConsole 是JDK自带的可视化监控工具。

命令行输入:jconsole

8.3.2 jvisualvm

可以监控本地、远程java进程的CPU、类、线程

(1)在visualvm中选中“远程”,右击“添加”

(2)主机名上写服务器的ip地址,比如31.100.39.63,然后点击“确定”

(3)右击该主机“31.100.39.63”,添加“JMX”[也就是通过JMX技术具体监控远端服务器哪个Java进程]

在启动项加上以下参数:

-Dcom.sun.management.jmxremote - Djava.rmi.server.hostname=31.100.39.63 -Dcom.sun.management.jmxremote.port=8998 -Dcom.sun.management.jmxremote.ssl=false - Dcom.sun.management.jmxremote.authenticate=true - Dcom.sun.management.jmxremote.access.file=../conf/jmxremote.access - Dcom.sun.management.jmxremote.password.file=../conf/jmxremote.password"

创建2个文件

jmxremote.access

guest readonly
manager readwrite

jmxremote.password

guest guest
manager manager

授予权限 : chmod 600 jmxremot

8.3.3 Arthas

Arthas 是 Alibaba 开源的Java诊断工具,采用命令行交互模式,

官网:https://github.com/alibaba/arthas

8.3.3.1 下载与安装

curl -O https://alibaba.github.io/arthas/arthas-boot.jar 
java -jar arthas-boot.jar 
# 然后可以选择一个Java进程

Print usage

java -jar arthas-boot.jar -h

8.3.3.2 常用命令

version:查看arthas版本号 
help:查看命名帮助信息 
cls:清空屏幕 
session:查看当前会话信息 
quit:退出arthas客户端 
--- 
dashboard:当前进程的实时数据面板 
thread:当前JVM的线程堆栈信息 
jvm:查看当前JVM的信息 
sysprop:查看JVM的系统属性 
--- 
sc:查看JVM已经加载的类信息 
dump:dump已经加载类的byte code到特定目录 
jad:反编译指定已加载类的源码 
--- 
monitor:方法执行监控 
watch:方法执行数据观测 
trace:方法内部调用路径,并输出方法路径上的每个节点上耗时 
stack:输出当前方法被调用的调用路径 
...... 

8.3.4 MAT

java 堆分析器,用于查找内存泄露

下载地址: https://www.eclipse.org/mat/downloads.php

8.3.5 GC日志分析工具

-XX:+PrintGCDetails 
-XX:+PrintGCTimeStamps 
-XX:+PrintGCDateStamps 
-Xloggc:gc.log

在线

  • http://gceasy.io

GCViewer


When I let go of what I am , I become what I might be.
走出舒适圈,遇见更好的自己。

上一篇:树莓派3B交叉编译PaddleLite进行图像分类


下一篇:字节跳动实习生删库高操作