对于有图形化界面的用户来,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. Solution: 最近公共祖先·一 [hiho一下 第十三周]

    题目1 : 最近公共祖先·一 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Ho最近发现了一个神奇的网站!虽然还不够像58同城那样神奇,但这个网站仍然让小Ho乐在其中 ...

  2. bash的位置变量和特殊变量

    bash编程的知识点:位置变量和特殊变量 位置参数变量:         scirpt1.sh arg1 arg2 ...         $0         $1   $2   ...  ${10 ...

  3. poj1523赤裸裸的割点

    这题真是没什么好说的...赤裸裸的求割点直接模板上 #include<cstdio> #include<cstring> #include<iostream> #i ...

  4. day18-socket 编程

    1.Socket是网络上的使用的交互信息得方法,也叫套接字 用于描述IP地址和端口,是一个通信链的句柄,应用程序通常通过"套接字"向网络发出请求或者应答网络请求. 通讯原理 Soc ...

  5. webdriver高级应用- 精确比较页面截图图片

    判断两张图是否完全一致,如果存在任何不一致,会认为图片不匹配,代码如下: #encoding=utf-8 from selenium import webdriver import unittest, ...

  6. HTTP的一些概念

    1. 什么是回调? 回调是异步编程时的基础,将后续逻辑封装成起始函数的参数,逐层嵌套 2. 什么是同步/异步? 同步是指:发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式. 异步是指: ...

  7. 【java基础 17】集合中各实现类的性能分析

    大致的再回顾一下java集合框架的基本情况 一.各Set实现类的性能分析 1.1,HashSet用于添加.查询 HashSet和TreeSet是Set的两个典型实现,HashSet的性能总是比Tree ...

  8. js版本下拉菜单

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

  9. PHP的发展史,功能与特点

    web1.0时代:所有的代码都是在浏览器端执行的静态脚本,用户请求的也都是服务器上事先已经存在的静态网页,用户和服务器之间不能进行任何的交互!(不需要数据库的支持) web2.0时代:用户和服务器之间 ...

  10. ACM程序设计选修课——Problem F:(ds:图)旅游规划(优先队列+SPFA)

    问题 F: (ds:图)旅游规划 时间限制: 1 Sec  内存限制: 128 MB 提交: 14  解决: 4 题目描述 有了一张自驾旅游路线图,你会知道城市间的高速公路长度.以及该公路要收取的过路 ...