Java虚拟机故障处理工具

发表于:2016-12-05 10:27

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:邱越    来源:51Testing软件测试网采编

  jmap命令样例 :
[root@localhost ~]# jmap -histo 6913|head -20
num     #instances         #bytes  class name
----------------------------------------------
1:       1864966      113459432  [C
2:        201846       49201192  [B
3:       1597065       38329560  java.lang.String
4:        117477       15037056  org.zhangyoubao.thriftdef.UserUsefulInfo
5:         47104       11072048  [I
6:        268631        8596192  java.util.HashMap$Entry
7:         48812        7451760  <constMethodKlass>
8:        100683        6443712  com.mysql.jdbc.ConnectionPropertiesImpl$BooleanConnectionProperty
9:         48812        6257856  <methodKlass>
10:          4230        5271640  <constantPoolKlass>
11:        159491        5103712  java.util.Hashtable$Entry
12:        120226        4809040  org.zhangyoubao.common.cache.adv.Node
13:        127027        4064864  java.util.concurrent.ConcurrentHashMap$HashEntry
14:        230433        3686928  java.lang.Integer
15:          3765        3049824  <constantPoolCacheKlass>
16:         20917        3012048  com.mysql.jdbc.Field
17:          4230        2943840  <instanceKlassKlass>
其中 [C = char[] , [B = byte[] , [S = short[] , [I = int[] , [[I = int[][] 。
  jhat: 虚拟机堆转存快照分析工具
  jhat 命令用于与jmap搭配使用,用来分析jmap生成的dump文件。jhat内置了一个微型的HTTP/HTML服务器,生成的dump文件的分析结果后,可以在浏览器查看。
  jhat命令格式 :
  jmap filename
  jhat命令样例 
  [root@localhost ~]# jhat html_intercept_server.dump
  Reading from html_intercept_server.dump...
  Dump file created Wed Nov 23 13:05:33 CST 2016
  Snapshot read, resolving...
  Resolving 203681 objects...
  Chasing references, expect 40 dots........................................
  Eliminating duplicate references........................................
  Snapshot resolved.
  Started HTTP server on port 7000
  Server is ready.
  jstack:java线程堆栈跟踪工具
  jstack用于生成虚拟机当前时刻的线程快照。线程快照就是当前虚拟机每一条线程正在执行的方法堆栈计划,生成线程快照的主要目的是定位线程长时间停顿的原因。在线程停顿的时候,通过jstack来查看没有响应的线程在后台做些什么事情,或者等待着什么资源。
  jstack命令格式 :
  jstack [option] vmid
  jstack其他选项 :
  -F 当正常输出的请求不被响应的时候,强制输出线程堆栈;
  -l 除了显示堆栈外,显示关于锁的附加信息;
  -m 如果调用本地方法,可以显示C/C++的堆栈。
  jstack命令样例 :
[root@localhost ~]# jstack 29577|head -20
2016-11-23 12:58:23
Full thread dump OpenJDK Server VM (24.91-b01 mixed mode):
"pool-1-thread-7261" prio=10 tid=0x0893a400 nid=0x6b0d waiting on condition [0x652ad000]
java.lang.Thread.State: TIMED_WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for  <0x75b5b400> (a java.util.concurrent.SynchronousQueue$TransferStack)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:226)
at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:460)
at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:359)
at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:942)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1068)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
"service_hot_lscs-0" daemon prio=10 tid=0x6982dc00 nid=0x6aeb waiting on condition [0x64ce1000]
java.lang.Thread.State: TIMED_WAITING (sleeping)
at java.lang.Thread.sleep(Native Method)
at org.zhangyoubao.video.client.runner.SimpleVideoRunner.doWork(SimpleVideoRunner.java:150)
22/2<12
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号