【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>
1. jps 打印所有java 进程
JACDONG-M-D1FJ:~ jacdong$ jps
28454 Jps
68554 OracleIdeLauncher
19436
2.jinfo -flags java 进程号 -- 查看jvm 参数
3.jinfo -sysprops java 进程号 -- 查看java 系统参数
4.jstat -class 进程号 -- 查看jvm 内存使用情况
JACDONG-M-D1FJ:~ jacdong$ jstat -class 29778
Loaded Bytes Unloaded Bytes Time
23128 46569.0 8 7.2 20.99
5.jstat -gc 进程号 -- 查看jvm gc 情况
JACDONG-M-D1FJ:~ jacdong$ jstat -gc 29778
S0C S1C S0U S1U EC EU OC OU MC MU CCSC CCSU YGC YGCT FGC FGCT GCT
96768.0 72704.0 0.0 72495.1 228352.0 82966.2 173568.0 110433.3 158616.0 141782.2 21504.0 17087.3 35 0.606 7 0.854 1.460
s0c : surivor 0
s--> survivor , c --> capacity , u --> used
gc 的统计信息
JACDONG-M-D1FJ:~ jacdong$ jstat -gccapacity 29778
NGCMN NGCMX NGC S0C S1C EC OGCMN OGCMX OGC OC MCMN MCMX MC CCSMN CCSMX CCSC YGC FGC
13312.0 409600.0 409600.0 111104.0 108544.0 189440.0 27648.0 819200.0 257024.0 257024.0 0.0 1196032.0 168216.0 0.0 1048576.0 22656.0 41 8
新生代gc 信息
JACDONG-M-D1FJ:~ jacdong$ jstat -gcnew 29778
S0C S1C S0U S1U TT MTT DSS EC EU YGC YGCT
111104.0 108544.0 0.0 10369.1 15 15 111104.0 189440.0 163857.6 41 0.824
新生代gc 统计信息
JACDONG-M-D1FJ:~ jacdong$ jstat -gcnewcapacity 29778
NGCMN NGCMX NGC S0CMX S0C S1CMX S1C ECMX EC YGC FGC
13312.0 409600.0 409600.0 136192.0 111104.0 136192.0 108544.0 408576.0 189440.0 41 8
老年代gc 信息
JACDONG-M-D1FJ:~ jacdong$ jstat -gcold 29778
MC MU CCSC CCSU OC OU YGC FGC FGCT GCT
168216.0 150555.2 22656.0 17927.9 257024.0 156917.3 41 8 1.312 2.136
老年代gc 统计信息
JACDONG-M-D1FJ:~ jacdong$ jstat -gcoldcapacity 29778
OGCMN OGCMX OGC OC YGC FGC FGCT GCT
27648.0 819200.0 257024.0 257024.0 41 8 1.312 2.136
jmap 查看运行时内存信息
利用jmap 来分析jvm 堆内存使用情况
jmap -histo 29778 > /Users/jacdong/log.txt
num : 序号
instances : 实例数
bytes : 占用空间
class name : 类名
num #instances #bytes class name
----------------------------------------------
1: 150159 98008528 [B
2: 886770 76335256 [C
3: 161177 20003024 [I
4: 652948 15670752 java.lang.String
5: 398156 12740992 java.util.HashMap$Node
6: 123850 7756536 [Ljava.lang.Object;
7: 77522 7026152 [Ljava.util.HashMap$Node;
8: 224619 5390856 java.lang.Long
9: 93065 4295320 [Ljava.lang.String;
10: 155022 3909224 [J
11: 72641 3486768 java.util.HashMap
12: 67345 3232560 org.eclipse.swt.internal.cocoa.NSRect
13: 95256 3048192 org.eclipse.swt.internal.cocoa.objc_super
14: 25823 2989784 java.lang.Class
15: 67746 2709840 java.util.LinkedHashMap$Entry
16: 69236 2215552 org.eclipse.swt.internal.cocoa.NSPoint
17: 27972 2013984 org.eclipse.emf.ecore.util.EContentsEList$FeatureIteratorImpl
18: 30005 1920320 org.eclipse.core.internal.resources.ResourceInfo
19: 33569 1611312 org.eclipse.core.internal.registry.ReferenceMap$SoftRef
20: 64657 1551768 java.util.ArrayList
21: 28016 1344768 org.eclipse.core.internal.registry.ConfigurationElement
22: 41950 1342400 org.eclipse.swt.graphics.Rectangle
23: 53945 1294680 java.lang.StringBuilder
24: 46578 1117872 org.eclipse.emf.ecore.util.EcoreUtil$ProperContentIterator
25: 11549 1108704 org.eclipse.egit.ui.internal.history.SWTCommit
26: 27698 1107920 java.util.WeakHashMap$Entry
27: 6641 1053664 [[C
28: 31674 1013568 java.util.Collections$UnmodifiableMap
29: 40888 981312 org.eclipse.emf.ecore.impl.BasicEObjectImpl$3
30: 15894 890064 java.util.LinkedHashMap
31: 3719 803304 org.eclipse.swt.custom.StyledTextEvent
32: 24163 773216 org.eclipse.jgit.dircache.DirCacheEntry
33: 5608 762688 org.eclipse.swt.widgets.Event
34: 31437 754488 org.eclipse.swt.internal.cocoa.NSGraphicsContext
35: 23120 739840 org.eclipse.swt.internal.cocoa.NSRange
36: 22873 731936 org.eclipse.swt.internal.cocoa.NSSize
37: 30057 721368 org.eclipse.core.internal.dtree.DataTreeNode
jmap -heap 29778 获取jvm 的概要信息。
JACDONG-M-D1FJ:~ jacdong$ jps
37872 EurekaApp
37875 Jps
37718
JACDONG-M-D1FJ:~ jacdong$ jmap -dump:format=b,file=eurake.hrpof 37872
Dumping heap to /Users/jacdong/eurake.hrpof ...
Heap dump file created
jstack 进程号 查看堆栈信息
jstack 进程号 查看堆栈信息
JACDONG-M-D1FJ:~ jacdong$ jstack 37872
2020-01-07 15:09:11
Full thread dump Java HotSpot(TM) 64-Bit Server VM (25.221-b11 mixed mode):
"Attach Listener" #50 daemon prio=9 os_prio=31 tid=0x00007fc44884a000 nid=0x5713 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"DestroyJavaVM" #49 prio=5 os_prio=31 tid=0x00007fc447bad800 nid=0x1803 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"http-nio-8888-AsyncTimeout" #47 daemon prio=5 os_prio=31 tid=0x00007fc4452af000 nid=0x8803 waiting on condition [0x000070000ce6e000]
java.lang.Thread.State: TIMED_WAITING (sleeping)
at java.lang.Thread.sleep(Native Method)
at org.apache.coyote.AbstractProtocol$AsyncTimeout.run(AbstractProtocol.java:1133)
at java.lang.Thread.run(Thread.java:748)
"http-nio-8888-Acceptor-0" #46 daemon prio=5 os_prio=31 tid=0x00007fc4452ae800 nid=0x6f03 runnable [0x000070000cd6b000]
java.lang.Thread.State: RUNNABLE
at sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)
at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:422)
at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:250)
- locked <0x000000076c19d578> (a java.lang.Object)
at org.apache.tomcat.util.net.NioEndpoint$Acceptor.run(NioEndpoint.java:455)
at java.lang.Thread.run(Thread.java:748)
"http-nio-8888-ClientPoller-1" #45 daemon prio=5 os_prio=31 tid=0x00007fc4452b5800 nid=0x6d03 runnable [0x000070000cc68000]
java.lang.Thread.State: RUNNABLE
at sun.nio.ch.KQueueArrayWrapper.kevent0(Native Method)
at sun.nio.ch.KQueueArrayWrapper.poll(KQueueArrayWrapper.java:198)
at sun.nio.ch.KQueueSelectorImpl.doSelect(KQueueSelectorImpl.java:117)
at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:86)
- locked <0x000000076c2a2948> (a sun.nio.ch.Util$3)
- locked <0x000000076c2a2938> (a java.util.Collections$UnmodifiableSet)
- locked <0x000000076c2a2818> (a sun.nio.ch.KQueueSelectorImpl)
at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:97)
at org.apache.tomcat.util.net.NioEndpoint$Poller.run(NioEndpoint.java:793)
at java.lang.Thread.run(Thread.java:748)
"http-nio-8888-ClientPoller-0" #44 daemon prio=5 os_prio=31 tid=0x00007fc447913800 nid=0x6b03 runnable [0x000070000cb65000]
java.lang.Thread.State: RUNNABLE
at sun.nio.ch.KQueueArrayWrapper.kevent0(Native Method)
at sun.nio.ch.KQueueArrayWrapper.poll(KQueueArrayWrapper.java:198)
at sun.nio.ch.KQueueSelectorImpl.doSelect(KQueueSelectorImpl.java:117)
at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:86)
- locked <0x000000076c2a2180> (a sun.nio.ch.Util$3)
- locked <0x000000076c2a2170> (a java.util.Collections$UnmodifiableSet)
- locked <0x000000076c2a2050> (a sun.nio.ch.KQueueSelectorImpl)
at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:97)
at org.apache.tomcat.util.net.NioEndpoint$Poller.run(NioEndpoint.java:793)
at java.lang.Thread.run(Thread.java:748)
来源:oschina
链接:https://my.oschina.net/jacdong/blog/3154382