Java 分析工具汇总
http://blog.csdn.net/fenglibing/article/details/6411999
jps
jps -mlvV
jmap -heap <pid> 查看jvm内存设置和使用情况
[root@datanode169 ~]# jmap -heap 29090
Attaching to process ID , please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 24.76-b04 using thread-local object allocation.
Parallel GC with thread(s) Heap Configuration:
MinHeapFreeRatio =
MaxHeapFreeRatio =
MaxHeapSize = (.0MB)
NewSize = (.25MB)
MaxNewSize = MB
OldSize = (.1875MB)
NewRatio =
SurvivorRatio =
PermSize = (.0MB)
MaxPermSize = (.0MB)
G1HeapRegionSize = (.0MB) Heap Usage:
PS Young Generation
Eden Space:
capacity = (.0MB)
used = (.89863586425781MB)
free = (.101364135742188MB)
76.02958073691717% used
From Space:
capacity = (.0MB)
used = (.9933624267578125MB)
free = (.0066375732421875MB)
99.86724853515625% used
To Space:
capacity = (.0MB)
used = (.0MB)
free = (.0MB)
0.0% used
PS Old Generation
capacity = (.0MB)
used = (.77819061279297MB)
free = (.22180938720703MB)
26.558769039991425% used
PS Perm Generation
capacity = (.0MB)
used = (.486091613769531MB)
free = (.51390838623047MB)
4.486754536628723% used interned Strings occupying bytes.
[root@datanode169 ~]#
jmap -histo <pid>
jmap -dump:live,format=b,file=szc.dump <pid>
利用top 和 jstack 分析
// 以线程3301 为例
# top -n -Hp 3301
Tasks: 35 total, 0 running, 35 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.6%us, 0.2%sy, 0.0%ni, 98.1%id, 1.1%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 8076704k total, 7929456k used, 147248k free, 117748k buffers
Swap: 8190972k total, 17328k used, 8173644k free, 2669008k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
3318 root 20 0 3312m 192m 10m S 2.0 2.4 0:02.24 java
3301 root 20 0 3312m 192m 10m S 0.0 2.4 0:00.00 java
3302 root 20 0 3312m 192m 10m S 0.0 2.4 0:01.93 java
3303 root 20 0 3312m 192m 10m S 0.0 2.4 0:00.03 java
3304 root 20 0 3312m 192m 10m S 0.0 2.4 0:00.02 java
3305 root 20 0 3312m 192m 10m S 0.0 2.4 0:00.01 java
3306 root 20 0 3312m 192m 10m S 0.0 2.4 0:00.02 java
3307 root 20 0 3312m 192m 10m S 0.0 2.4 0:00.01 java
3308 root 20 0 3312m 192m 10m S 0.0 2.4 0:00.02 java
3309 root 20 0 3312m 192m 10m S 0.0 2.4 0:00.01 java
3310 root 20 0 3312m 192m 10m S 0.0 2.4 0:00.02 java
3311 root 20 0 3312m 192m 10m S 0.0 2.4 0:00.12 java
3312 root 20 0 3312m 192m 10m S 0.0 2.4 0:00.01 java
3313 root 20 0 3312m 192m 10m S 0.0 2.4 0:00.01 java
3314 root 20 0 3312m 192m 10m S 0.0 2.4 0:00.00 java
3315 root 20 0 3312m 192m 10m S 0.0 2.4 0:00.34 java
3316 root 20 0 3312m 192m 10m S 0.0 2.4 0:00.36 java
3317 root 20 0 3312m 192m 10m S 0.0 2.4 0:00.00 java
3319 root 20 0 3312m 192m 10m S 0.0 2.4 0:00.03 java
3329 root 20 0 3312m 192m 10m S 0.0 2.4 0:00.00 java
3330 root 20 0 3312m 192m 10m S 0.0 2.4 0:00.00 java
3353 root 20 0 3312m 192m 10m S 0.0 2.4 0:00.01 java
root 20 0 3312m 192m 10m S 0.0 2.4 0:00.01 java
3433 root 20 0 3312m 192m 10m S 0.0 2.4 0:00.02 java
3434 root 20 0 3312m 192m 10m S 0.0 2.4 0:00.02 java
3435 root 20 0 3312m 192m 10m S 0.0 2.4 0:00.01 java
3436 root 20 0 3312m 192m 10m S 0.0 2.4 0:00.00 java
3437 root 20 0 3312m 192m 10m S 0.0 2.4 0:00.00 java
3438 root 20 0 3312m 192m 10m S 0.0 2.4 0:00.00 java
3439 root 20 0 3312m 192m 10m S 0.0 2.4 0:00.00 java
3440 root 20 0 3312m 192m 10m S 0.0 2.4 0:00.00 java
3441 root 20 0 3312m 192m 10m S 0.0 2.4 0:00.00 java
3442 root 20 0 3312m 192m 10m S 0.0 2.4 0:00.04 java
3443 root 20 0 3312m 192m 10m S 0.0 2.4 0:00.05 java
6106 root 20 0 3312m 192m 10m S 0.0 2.4 0:00.00 java
# jstack -l 3301
// 截取部分输出如下
"Thread-6" prio=10 tid=0x00007f1ee05d1800 nid=0xd68 waiting on condition [0x00007f1ecafc4000]
java.lang.Thread.State: TIMED_WAITING (sleeping)
at java.lang.Thread.sleep(Native Method)
可以看出 0xd68 是 3432 的16进制
1. 不同的 JAVA虚机的线程 DUMP的创建方法和文件格式是不一样的,不同的 JVM版本, dump信息也有差别。本文中,只以 SUN的 hotspot JVM 5.0_06 为例。
2. 在实际运行中,往往一次 dump的信息,还不足以确认问题。建议产生三次 dump信息,如果每次 dump都指向同一个问题,我们才确定问题的典型性。
参考 http://josh-persistence.iteye.com/blog/2161848?utm_source=tuicool&utm_medium=referral
Java 分析工具汇总的更多相关文章
- (转)超全整理!Linux性能分析工具汇总合集
超全整理!Linux性能分析工具汇总合集 原文:http://rdc.hundsun.com/portal/article/731.html 出于对Linux操作系统的兴趣,以及对底层知识的强烈欲望, ...
- Linux下性能分析工具汇总
来自:http://os.51cto.com/art/201104/253114.htm 本文讲述的是:CPU性能分析工具.Memory性能分析工具.I/O性能分析工具.Network性能分析工具. ...
- Linux 性能分析工具汇总合集
出于对Linux操作系统的兴趣,以及对底层知识的强烈欲望,因此整理了这篇文章.本文也可以作为检验基础知识的指标,另外文章涵盖了一个系统的方方面面.如果没有完善的计算机系统知识,网络知识和操作系统知识, ...
- [转]Linux性能分析工具汇总合集
出于对Linux操作系统的兴趣,以及对底层知识的强烈欲望,因此整理了这篇文章.本文也可以作为检验基础知识的指标,另外文章涵盖了一个系统的方方面面.如果没有完善的计算机系统知识,网络知识和操作系统知识, ...
- 超全整理!Linux性能分析工具汇总合集
转自:http://rdc.hundsun.com/portal/article/731.html?ref=myread 出于对Linux操作系统的兴趣,以及对底层知识的强烈欲望,因此整理了这篇文章. ...
- Java开发工具汇总
1. Arthas 是Alibaba开源的Java诊断工具 Java动态追踪,对生产环境出现出现bug的情况下,无法调试处理问题,可以借鉴该工具进行问题分析. 原理介绍:Java动态追踪技术探究 Ar ...
- java分析工具arthas
wget https://alibaba.github.io/arthas/arthas-boot.jar java -jar arthas-boot.jar --target-ip 0.0.0.0
- Java 性能分析工具 , 第 2 部分:Java 内置监控工具
引言 本文为 Java 性能分析工具系列文章第二篇,第一篇:操作系统工具.在本文中将介绍如何使用 Java 内置监控工具更加深入的了解 Java 应用程序和 JVM 本身.在 JDK 中有许多内置的工 ...
- 9个Java性能优化工具汇总
本文来自blog.idrsolutions.com 1.NetBeans profiler NetBeans Profiler是一个模块化的添加,为NetBeans IDE提供分析功能,它是一个开源的 ...
随机推荐
- jQuery remove()与jQuery empty()的区别
jQuery remove() 方法删除被选元素及其子元素.举例如下: <!DOCTYPE html> <html> <head> <script src=& ...
- 在springboot中使用Mybatis Generator的两种方式
介绍 Mybatis Generator(MBG)是Mybatis的一个代码生成工具.MBG解决了对数据库操作有最大影响的一些CRUD操作,很大程度上提升开发效率.如果需要联合查询仍然需要手写sql. ...
- Vue一次性简洁明了引入所有公共组件
使用场景 -在开发过程中,往往会有很多自己定义公用组件,我们通过import 导入,components挂载到实例上就行,项目刚开始还好,但是随着项目迭代,组件越来越多,同一个组件不同的方式用需要重复 ...
- DIY固件系列教程——实现开机LOGO三屏动画的完全替换【转】
本文转载自:http://blog.csdn.net/sdgaojian/article/details/9192433 本教程需要用到如下工具:1,7Z压缩工具2,AddCrc32效验工具3,raw ...
- POJ2478 Farey Sequence —— 欧拉函数
题目链接:https://vjudge.net/problem/POJ-2478 Farey Sequence Time Limit: 1000MS Memory Limit: 65536K To ...
- Discuz/X3.1去掉标题中的Powered by Discuz!以及解决首页标题后的"-"
虽然不提倡大家去掉版权信息,但是在实际操作的时候还是去掉,毕竟每个页面标题最后面出现”Powered by Discuz!“会显得页面标题比较冗长. 经过本人的实践,论坛里也有操作方法,不过那个操作方 ...
- 编辑xml文件时不能自动提示问题的解决
在编辑xml文件时,eclipse总是不能自动提示,在网上找了一些资料,大部分都是说关于xml editor配置的,下面也把这个方法罗列在下面,以供参考: 解决办法:在eclipse的菜单里,找到wi ...
- WebRTC学习
1. WebRTC学习 1.1 WebRTC现状 本人最早接触WebRTC是在2011年底,那时Google已经在Android源码中加入了webrtc源码,放在/external/web ...
- C语言中的字符数组和字符串
在C语言中,没有字符串类型,但是可以通过字符数组来模拟字符串. 字符串可以在栈上,堆上,静态区和常量区进行分配. char buf[50] = "abc"; char buf[] ...
- [IOI 2018] Werewolf
[题目链接] https://www.luogu.org/problemnew/show/P4899 [算法] 建出原图的最小/最大生成树的kruskal重构树然后二维数点 时间复杂度 ...