对于有图形化界面的用户来,jconsole就可以搞定,界面使用很简单

还可以查看很多信息,例如检测死锁。

下面是没有图形化界面的系统 可以用命令 :

jps

查看jvm 进程

jstack -l  6088

查看 jvm 启动参数的命令

root@VM-185-251-ubuntu:/home/ubuntu# jinfo -flags 17809

返回值如下

Attaching to process ID 17809, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.161-b12
Non-default VM flags: -XX:CICompilerCount=2 -XX:InitialHeapSize=31457280 -XX:+ManagementServer -XX:MaxHeapSize=1048576000 -XX:MaxNewSize=349503488 -XX:MinHeapDeltaBytes=196608 -XX:NewSize=10485760 -XX:OldSize=20971520 -XX:+UseCompressedClassPointers -XX:+UseCompressedOops
Command line: -Dzookeeper.log.dir=. -Dzookeeper.root.logger=INFO,CONSOLE -Xmx1000m -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.local.only=false
root@VM-185-251-ubuntu:/home/ubuntu# jmap -heap 17809
Attaching to process ID 17809, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.161-b12

root@VM-185-251-ubuntu:/home/ubuntu# jmap -heap 17809
Attaching to process ID 17809, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.161-b12

using thread-local object allocation.
Mark Sweep Compact GC

Heap Configuration:
MinHeapFreeRatio = 40
MaxHeapFreeRatio = 70
MaxHeapSize = 1048576000 (1000.0MB)
NewSize = 10485760 (10.0MB)
MaxNewSize = 349503488 (333.3125MB)
OldSize = 20971520 (20.0MB)
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 = 9437184 (9.0MB)
used = 5564648 (5.306861877441406MB)
free = 3872536 (3.6931381225585938MB)
58.96513197157118% used
Eden Space:
capacity = 8388608 (8.0MB)
used = 5457256 (5.204444885253906MB)
free = 2931352 (2.7955551147460938MB)
65.05556106567383% used
From Space:
capacity = 1048576 (1.0MB)
used = 107392 (0.1024169921875MB)
free = 941184 (0.8975830078125MB)
10.24169921875% used
To Space:
capacity = 1048576 (1.0MB)
used = 0 (0.0MB)
free = 1048576 (1.0MB)
0.0% used
tenured generation:
capacity = 20971520 (20.0MB)
used = 3766176 (3.591705322265625MB)
free = 17205344 (16.408294677734375MB)
17.958526611328125% used

4090 interned Strings occupying 322344 bytes.

root@VM-185-251-ubuntu:/home/ubuntu# jcmd 17809 VM.flags
17809:
-XX:CICompilerCount=2 -XX:InitialHeapSize=31457280 -XX:+ManagementServer -XX:MaxHeapSize=1048576000 -XX:MaxNewSize=349503488 -XX:MinHeapDeltaBytes=196608 -XX:NewSize=10485760 -XX:OldSize=20971520 -XX:+UseCompressedClassPointers -XX:+UseCompressedOops

jmap -histo:live  12001  查看(活着)类的数量

num #instances #bytes class name
----------------------------------------------
1: 3497 1966552 [Ljava.lang.Object;
2: 4274 1108280 [B
3: 13508 1038624 [C
4: 858 562848 io.netty.util.internal.shaded.org.jctools.queues.MpscArrayQueue
5: 3249 372384 java.lang.Class
6: 13374 320976 java.lang.String
7: 1964 136536 [I
8: 2438 78016 java.util.HashMap$Node
9: 2373 75936 java.util.concurrent.ConcurrentHashMap$Node
10: 1410 56400 java.util.LinkedHashMap$Entry
11: 73 53840 [Lio.netty.util.Recycler$DefaultHandle;
12: 313 49520 [Ljava.util.HashMap$Node;
13: 1316 42112 sun.security.util.DerInputBuffer
14: 1316 42112 sun.security.util.DerValue
15: 10 32960 [Ljava.nio.channels.SelectionKey;
16: 397 32712 [Ljava.lang.String;
17: 1316 31584 sun.security.util.DerInputStream
18: 780 31200 java.util.TreeMap$Entry
19: 1297 31128 [Lsun.security.x509.AVA;
20: 1297 31128 sun.security.x509.AVA
21: 1297 31128 sun.security.x509.RDN
22: 1795 28720 java.lang.Object
23: 811 25952 java.util.Hashtable$Entry
24: 792 25344 io.netty.buffer.PoolThreadCache$SubPageMemoryRegionCache
25: 633 25320 java.lang.ref.SoftReference
26: 625 25000 java.math.BigInteger
27: 45 24880 [Ljava.util.concurrent.ConcurrentHashMap$Node;
28: 668 21376 sun.security.util.ObjectIdentifier
29: 630 20160 java.lang.ref.WeakReference
30: 10 17120 [Lio.netty.buffer.PoolSubpage;
31: 343 16464 sun.security.x509.X500Name
32: 180 15840 java.lang.reflect.Method
33: 658 15792 java.util.ArrayList
34: 491 15712 sun.security.x509.AlgorithmId
35: 312 14976 java.util.HashMap
36: 613 14712 org.apache.rocketmq.common.MQVersion$Version

显示活着的类的数量,所占空间 类全名

jstat -gc  6892 3000

S0C S1C S0U S1U EC EU OC OU MC MU CCSC CCSU YGC YGCT FGC FGCT GCT
0.0 16384.0 0.0 16384.0 131072.0 65536.0 114688.0 25684.5 22320.0 21724.9 2304.0 2163.4 121 0.792 0 0.000 0.792
0.0 16384.0 0.0 16384.0 131072.0 65536.0 114688.0 25684.5 22320.0 21724.9 2304.0 2163.4 121 0.792 0 0.000 0.792
0.0 16384.0 0.0 16384.0 131072.0 65536.0 114688.0 25684.5 22320.0 21724.9 2304.0 2163.4 121 0.792 0 0.000 0.792
0.0 16384.0 0.0 16384.0 131072.0 65536.0 114688.0 25684.5 22320.0 21724.9 2304.0 2163.4 121 0.792 0 0.000 0.792
0.0 16384.0 0.0 16384.0 131072.0 65536.0 114688.0 25684.5 22320.0 21724.9 2304.0 2163.4 121 0.792 0 0.000 0.792
0.0 16384.0 0.0 16384.0 131072.0 65536.0 114688.0 25684.5 22320.0 21724.9 2304.0 2163.4 121 0.792 0 0.000 0.792
0.0 16384.0 0.0 16384.0 131072.0 65536.0 114688.0 25684.5 22320.0 21724.9 2304.0 2163.4 121 0.792 0 0.000 0.792

查看GC情况。

无法attach进程的错误

Error attaching to process: sun.jvm.hotspot.debugger.DebuggerException: Can't attach to the process: ptrace(PTRACE_ATTACH, ..) failed for 17: Operation not permitted
sun.jvm.hotspot.debugger.DebuggerException: sun.jvm.hotspot.debugger.DebuggerException: Can't attach to the process: ptrace(PTRACE_ATTACH, ..) failed for 17: Operation not permitted
at sun.jvm.hotspot.debugger.linux.LinuxDebuggerLocal$LinuxDebuggerLocalWorkerThread.execute(LinuxDebuggerLocal.java:163)
at sun.jvm.hotspot.debugger.linux.LinuxDebuggerLocal.attach(LinuxDebuggerLocal.java:278)
at sun.jvm.hotspot.HotSpotAgent.attachDebugger(HotSpotAgent.java:671)
at sun.jvm.hotspot.HotSpotAgent.setupDebuggerLinux(HotSpotAgent.java:611)
at sun.jvm.hotspot.HotSpotAgent.setupDebugger(HotSpotAgent.java:337)
at sun.jvm.hotspot.HotSpotAgent.go(HotSpotAgent.java:304)
at sun.jvm.hotspot.HotSpotAgent.attach(HotSpotAgent.java:140)
at sun.jvm.hotspot.tools.Tool.start(Tool.java:185)
at sun.jvm.hotspot.tools.Tool.execute(Tool.java:118)
at sun.jvm.hotspot.tools.JInfo.main(JInfo.java:138)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at sun.tools.jinfo.JInfo.runTool(JInfo.java:108)
at sun.tools.jinfo.JInfo.main(JInfo.java:76)
Caused by: sun.jvm.hotspot.debugger.DebuggerException: Can't attach to the process: ptrace(PTRACE_ATTACH, ..) failed for 17: Operation not permitted
at sun.jvm.hotspot.debugger.linux.LinuxDebuggerLocal.attach0(Native Method)
at sun.jvm.hotspot.debugger.linux.LinuxDebuggerLocal.access$100(LinuxDebuggerLocal.java:62)
at sun.jvm.hotspot.debugger.linux.LinuxDebuggerLocal$1AttachTask.doit(LinuxDebuggerLocal.java:269)
at sun.jvm.hotspot.debugger.linux.LinuxDebuggerLocal$LinuxDebuggerLocalWorkerThread.run(LinuxDebuggerLocal.java:138)

sudo vi /etc/sysctl.d/10-ptrace.conf 
编辑下面这行: 
kernel.yama.ptrace_scope = 1 
修改为: 
kernel.yama.ptrace_scope = 0 
重启系统,使修改生效。

JVM 常用命令的更多相关文章

  1. JVM常用命令和性能调优建议 [Could not create the Java virtual machine]

    一.查看jvm常用命令jinfo:可以输出并修改运行时的java 进程的opts. jps:与unix上的ps类似,用来显示本地的java进程,可以查看本地运行着几个java程序,并显示他们的进程号. ...

  2. JVM常用命令和性能调优建议

      一.查看jvm常用命令jinfo:可以输出并修改运行时的java 进程的opts. jps:与unix上的ps类似,用来显示本地的java进程,可以查看本地运行着几个java程序,并显示他们的进程 ...

  3. java jvm常用命令工具

    [尊重原创文章出自:http://www.chepoo.com/java-jvm-command-tools.html] 一.概述 程序运行中经常会遇到各种问题,定位问题时通常需要综合各种信息,如系统 ...

  4. JVM 常用命令行工具

    本文部分摘自<深入理解 Java 虚拟机第三版> 基础故障处理工具 Java 开发人员肯定都知道 JDK 的 bin 目录下有许多小工具,这些小工具除了用于编译和运行 Java 程序外,打 ...

  5. JVM常用命令(九)

    前面东西说完后,现在可以说一些和我们平时进行性能调优相关的东西了,那怎么看和我们JVM性能调优相关的东西呢,其实这对我们开发来说是一个比较头痛的问题,其实我们JDK官网给了一些我们相关的指令,我们可以 ...

  6. 查看jvm常用命令

    jinfo:可以输出并修改运行时的java 进程的opts. jps:与unix上的ps类似,用来显示本地的java进程,可以查看本地运行着几个java程序,并显示他们的进程号. jstat:一个极强 ...

  7. JVM常用命令行工具1

    1.jps [options][hostid]:查看虚拟机进程状况 -l 输出主类全名,如果进程执行的是jar包,输出jar包路径.-q 只输出LVMID. -m输出虚拟机进程启动时传递给主类main ...

  8. jvm常用命令

    jps // 查看Java进程ID和main方法类名 jstack <进程ID> // 查看该进程的所有栈信息 jstack -l <进程ID> // 查看该进程的所有栈信息, ...

  9. JVM监控和调优常用命令工具总结

    JVM监控和调优 在Java应用和服务出现莫名的卡顿.CPU飙升等问题时总是要分析一下对应进程的JVM状态以定位问题和解决问题并作出相应的优化,在这过程中Java自带的一些状态监控命令和图形化工具就非 ...

随机推荐

  1. navicat12.0.24破解方法,简单易操作,亲测可行

    navicat12.0.24 32bit 链接:https://pan.baidu.com/s/1dakPje0AzwE86p6ZRHfnsQ 密码:f1ve 破解文件 链接:https://pan. ...

  2. 如何查看Android apk的包名?

    有以下四种方法可以查看apk的包名,之后有别的方法,会接着更新文档的. 1. 安装APK包名查看器; 2. 源码AndroidManifest.xml中查看package包名; 3. 利用" ...

  3. Android开发工具——Android Studio调试技巧

    .调试的两种方式 到目前,调试的相关基础我们已经介绍完了,但是不少同学对Android Studio中这两个按钮感到困惑:Debug和Attach process. 这里我们就简单介绍一下这两者的区别 ...

  4. SpringDataJpa错误

    在运行项目的时候出现的错误如下: would dispatch back to the current handler URL [/save] again. Check your ViewResolv ...

  5. php-数据库连接类

    <?php class DB{ var $host; var $user; var $pwd; var $dbname; var $conn; function DB($host,$user,$ ...

  6. 大数据学习——actor编程

    1 概念 Scala中的Actor能够实现并行编程的强大功能,它是基于事件模型的并发机制,Scala是运用消息(message)的发送.接收来实现多线程的.使用Scala能够更容易地实现多线程应用的开 ...

  7. 【LeetCode】Binary Tree Level Order Traversal(二叉树的层次遍历)

    这道题是LeetCode里的第102道题. 题目要求: 给定一个二叉树,返回其按层次遍历的节点值. (即逐层地,从左到右访问所有节点). 例如: 给定二叉树: [3,9,20,null,null,15 ...

  8. Hadoop全分布式模式安装

    一.准备 1.准备至少三台linux服务器,并安装JDK 关闭防火墙如下 systemctl stop firewalld.service systemctl disable firewalld.se ...

  9. 用echarts.js制作中国地图,点击对应的省市链接到指定页面

    这里使用的是ECharts 2,因为用EChart 3制作的地图上的省市文字标识会有重叠,推测是引入的地图文件china.js,绘制文字的坐标方面的问题,所以,这里还是使用老版本. ECharts 2 ...

  10. localStorage的用法

    1.在HTML5中,本地存储是一个window的属性,包括localStorage和sessionStorage,前者是一直存在本地的,后者是伴随着session,窗口一旦关闭就消失了.二者用法完全相 ...