对于有图形化界面的用户来,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. python基础学习笔记——循环语句(while、for)

    while 循环 流程控制语句 while 1.基本循环 while 条件: # 循环体 # 如果条件为真,那么循环则执行 # 如果条件为假,那么循环不执行   2.break break 用于退出当 ...

  2. clr(Windows 运行时和公共语言运行时)

    Windows 运行时   编译器使用 COM 引用计数机制来确定对象是否不再使用并可以删除. 因为从 Windows 运行时接口派生的对象实际上是 COM 对象,所以这是可行的. 在创建或复制对象时 ...

  3. 30、自定义gridview

    要想实现自定义gridview效果,有下边几个步骤: 1.定义grivew中的item的xml文件 假如item需要显示一个图片,图片下边显示文字: <?xml version="1. ...

  4. Selenium WebDriver- 操作frame中的页面元素

    #encoding=utf-8 import unittest import time from selenium import webdriver from selenium.webdriver i ...

  5. 轻量级的C++插件框架 - X3 C++ PluginFramework

    X3 C++ PluginFramework 代号为X3的C++轻量级通用插件框架平台是一套通用的C++轻量级插件体系,没有使用MFC.ATL.COM.可在Windows和Linux下编译运行.应用程 ...

  6. NOJ——1274The battle of Red Cliff(并查集按秩合并)

    [1274] The battle of Red Cliff 时间限制: 1000 ms 内存限制: 65535 K 问题描述 Zero loves palying Sanguo game very ...

  7. NOJ——1559Jump to the Top of Mountain(简单暴力DFS+渣渣代码)

    [1559] Jump to the Top of Mountain 时间限制: 1000 ms 内存限制: 65535 K 问题描述 Have you played a game named Min ...

  8. [TJOI2017] 城市 (树的直径,贪心)

    题目链接 Solution 这道题,调了我一晚上... 一直80分 >_<|| ... 考虑到几点: 分开任意一条边 \(u\) ,那么其肯定会断成两棵树. 肯定是分开直径上的边最优,否则 ...

  9. java中String初始化的两种方式

    转自:http://www.diybl.com/course/3_program/java/javajs/2007104/75886.html       字符串可能是任何程序语言中都会出现的对象,j ...

  10. 【前端学习笔记】2015-09-06 ~~~~ setAttribute()、slice()

    所遇记录: 1.setAttribute("属性",value),相同的还有addAttribute("属性名",value),getAttribute(“属性 ...