- 浏览: 518746 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (161)
- 多线程与并发编程 (20)
- 算法和数据结构 (8)
- 缓存 (0)
- HttpClient (2)
- 疑难杂症 (11)
- Java内存管理 (17)
- 分布式开发 (14)
- Linux常用命令 (10)
- OSGI (0)
- UML (2)
- 趣味面试题 (5)
- 设计模式 (8)
- Java类加载 (2)
- JSTL (1)
- Web 服务器 (4)
- IT人生 (3)
- Java基础 (11)
- Flash技术 (7)
- 新知识 (3)
- 常用速备速查 (4)
- 版本控制 (1)
- Java集合工具类 (6)
- web前端技术 (1)
- 趣味话题 (1)
- 安全 (0)
- 架构设计 (5)
- Spring (4)
- 负载均衡技术 (2)
- 持久层技术 (2)
- MySQL单机多实例方案 (1)
- 收藏备用 (0)
- 性能优化 (3)
最新评论
-
liuwuhen:
...
Pushlet的工作原理 -
fbwfbi:
fengchuizhuming 写道楼主的完全正确。鉴定完毕楼 ...
硬件同步原语(CAS)理论 -
passerby_whu:
uule 写道这个测试后结果为:“testPageConten ...
FutureTask的使用方法和使用实例 -
fengchuizhuming:
楼主的完全正确。鉴定完毕
硬件同步原语(CAS)理论 -
edwardjuice:
FutureTask的使用方法和使用实例
1.JConsole
Jconsole,Java Monitoring and Management Console。
java监控和管理控制台,从java5开始,在JDK中提供。
用于对JVM中内存,线程、类和虚拟机的运行情况等的监控。提供了本地监控和远程监控两种功能。
2.jps
[root@host bin]# ./jps
17515 Standalone
1487 Jps
3.jmap
jmap是一个可以输出所有内存中对象的工具,甚至可以将VM 中的heap,以二进制输出成文本。使用方法 jmap -histo pid。如果连用 SHELL jmap -histo pid > a.log可以将其保存到文本中去(windows下也可以使用),在一段时间后,使用文本对比工具,可以对比出GC回收了哪些对象。jmap -dump:format=b,file=f1 3024可以将3024进程的内存heap输出出来到f1文件里。
jmap的常用命令:
3.1 jmap -finalizerinfo JVM的进程号
这个表示有多少对象正在finalization队列中,等待finalizer thread进行finalizer,对于finalizer的原理,请参考我的博客文章OutOfMemory总汇
例如:
[root@tomy tomcat]
# /usr/java/latest/bin/jmap -finalizerinfo 25757
Attaching to process ID 25757, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 14.0-b16
Number of objects pending for finalization: 0
3.2 jmap -heap JVM的进程号
打印堆的使用情况,以及GC采用什么垃圾回收器
例如:
[root@labs-dev01 tomcat]# /usr/java/latest/bin/jmap -heap 25757
Attaching to process ID 25757, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 14.0-b16
using thread-local object allocation.
Parallel GC with 2 thread(s)
Heap Configuration:
MinHeapFreeRatio = 40
MaxHeapFreeRatio = 70
MaxHeapSize = 402653184 (384.0MB)
NewSize = 1048576 (1.0MB)
MaxNewSize = 4294901760 (4095.9375MB)
OldSize = 4194304 (4.0MB)
NewRatio = 8
SurvivorRatio = 8
PermSize = 16777216 (16.0MB)
MaxPermSize = 67108864 (64.0MB)
Heap Usage:
PS Young Generation
Eden Space:
capacity = 42598400 (40.625MB)
used = 21145576 (20.165992736816406MB)
free = 21452824 (20.459007263183594MB)
49.63936673677885% used
From Space:
capacity = 1048576 (1.0MB)
used = 652736 (0.62249755859375MB)
free = 395840 (0.37750244140625MB)
62.249755859375% used
To Space:
capacity = 1048576 (1.0MB)
used = 0 (0.0MB)
free = 1048576 (1.0MB)
0.0% used
PS Old Generation
capacity = 357957632 (341.375MB)
used = 23543768 (22.453086853027344MB)
free = 334413864 (318.92191314697266MB)
6.577249902021924% used
PS Perm Generation
capacity = 24903680 (23.75MB)
used = 24817640 (23.667945861816406MB)
free = 86040 (0.08205413818359375MB)
99.65450889185855% used
3.3 jmap -dump:file=<fileName> JVM的进程号(java5版本不支持这个参数)
[root@labs-dev01 tomcat]# /usr/java/latest/bin/jmap -dump:file=heap.bin -F 25757
Attaching to process ID 25757, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 14.0-b16
Dumping heap to mashup ...
Finding object size using Printezis bits and skipping over...
Finding object size using Printezis bits and skipping over...
Finding object size using Printezis bits and skipping over...
Finding object size using Printezis bits and skipping over...
Finding object size using Printezis bits and skipping over...
Finding object size using Printezis bits and skipping over...
Finding object size using Printezis bits and skipping over...
Finding object size using Printezis bits and skipping over...
Finding object size using Printezis bits and skipping over...
Finding object size using Printezis bits and skipping over...
Heap dump file created
dump下来的二进制文件,需要用专门的工具进行查看,sun提供了jhat工具进行查看:
[root@tomy tomcat]# /usr/java/latest/bin/jhat heap.bin
Reading from heap.bin...
Dump file created Wed Apr 14 08:57:06 GMT+00:00 2010
Snapshot read, resolving...
Resolving 443412 objects...
Chasing references, expect 88 dots........................................................................................
Eliminating duplicate references........................................................................................
Snapshot resolved.
Started HTTP server on port 7000
Server is ready.
由上面可以看到,jhat查看器,是启动了7000端口,让客户端可以通过web方式进行查看,dump出来的内容包含:
1)所有在内存中的类信息
2)所有类的实例数目
3)GC的root set
客户端可以通过浏览器访问http://ip:7000就可以访问到heap里面的内容了。
发表评论
-
JVM四种对象引用类型
2011-05-17 16:27 1553JVM 中将对象的引用分为了四种类型,不同的对象引用类型会造成 ... -
Garbage First - Card Table
2011-05-12 17:36 1452之前一直以为只是在Garbage First垃圾回收器中,有C ... -
Red5 0.7和0.9 版本配置远程JConsole监控
2010-12-12 16:23 2517JConsole可以帮助你监控虚拟机的状态,垃圾回收的时间,调 ... -
Java内存Dump文件查看和分析工具介绍
2010-12-06 16:51 15539为了查red5-0.7.0的内存泄露问题,由于dump文件太大 ... -
深入垃圾收集器与内存分配策略
2010-11-05 15:45 1374Java与C++之间有一堵由 ... -
实战OutOfMemoryError(转)
2010-11-05 15:41 1766实战 OutOfMemoryError 上述区域中 ... -
JVM 运行时区域划分(转载)
2010-11-05 15:39 1573VM 运行时数据区域 JVM 执行 Java ... -
使用jconsole远程监控linux下tomcat使用情况
2010-10-26 09:11 3672启动tomcat/bin/startup.sh中增加一下变量: ... -
Eclipse经常出现OutOfMemory错误,如何解决
2010-04-15 16:59 23049今天有个同事问我一个问题,他的Eclipse经常出现OutOf ... -
Java内存泄露示例代码总汇
2010-04-09 13:57 3563Java尽管采用自动的内存 ... -
HotSpot VM - OutOfMemory Error 总汇
2010-04-06 16:02 2208OutOfMemory Error表明Java 堆没有足够的内 ... -
Java内存管理-Permanent Space
2010-03-10 13:21 4990VM 的Permanent generation space, ... -
JVM -Server -Client 模式
2010-03-10 09:39 2755JVM -Server 与 -Client启动,最主要的差别在 ... -
Java 5 版本以上(SUN JVM)GC参数化调整大全
2010-03-08 16:37 2820今天终于有所斩获,发现了Sun Hotspot JVM GC最 ... -
Java内存管理基础篇 - Java内存回收-常见的垃圾回收策略
2010-03-08 16:33 1719Java的内存使用完之后,是通过JVM的GC进行回收的。 ... -
Java内存管理基础篇 - Java内存分配
2010-03-04 22:19 29661.简介 现摘录一段Java5内存管理白皮书中的 ...
相关推荐
Java内存监控工具Java VisualVM
监控工具VisualVM VisualVM 是Netbeans的profile子项目,能够监控线程,内存情况,查看方法的CPU时间和内存中的对 象,已被GC的对象,反向查看分配的堆栈(如100个String对象分别由哪几个对象分配出来的)。...
java监控工具源码-可集成到项目使用 内存状态、CPU负载、磁盘IO吞吐率、磁盘健康状态、网卡IO 监控 适合用于服务健康监控、线上调优、排查问题、性能测试等场景 支持操作系统监控:内存状态、CPU负载、磁盘IO及吞吐...
java 运行内存监控 系统内存监控小工具,可监控java运行期间所占内存大小,java gui小工具 双击运行即可执行 记得安装jdk8
java内存泄露查询的几个命令系统命令的使用说明
jmap:打印出某个java进程(使用pid)内存内的,所有‘对象’的情况(如:产生那些对象,及其数量)。 jconsole:一个javaGUI监视工具,可以以图表化的形式显示各种数据。并可通过远程连接监视远程的服务器VM。
java 性能监控分析,内存监控,内存使用,垃圾回收
系统实现了基于Java的Linux运维监控工具Wgcloud,支持系统硬件信息、内存、CPU、温度、磁盘空间及IO、硬盘SMART、系统负载、网络流量等监控,服务接口监测,大屏展示,拓扑图,端口监控,进程监控,Docker监控,日志...
NULL 博文链接:https://kennylee26.iteye.com/blog/1402260
java内存分析工具介绍,分析内存泄漏及监控之。
功能包括内存分析、快照功能、转储功能、CPU分析等等,系统管理员可以利用它来监测、控制Java应用程序横跨整个网络的情况。 它集成了多个JDK命令工具的一个可视化工具,它主要用来监控JVM的运行情况,
JProbe(内存监控)资料 java内存监控工具.非常实用.
第56节可视化虚拟机工具-Jconsole内存监控00:07:09分钟 | 第57节可视化虚拟机工具-Jconsole线程监控00:12:18分钟 | 第58节死锁原理以及可视化虚拟机工具-Jconsole线程死锁监控00:10:38分钟 | 第59节VisualVM使用...
Jvmm是一个同时支持操作系统监控和Java虚拟机监控的工具,提供有丰富的监控功能:OS监控(内存状态、CPU负载、磁盘IO吞吐率、磁盘健康状态、网卡IO等)、JVM监控(内存、线程、GC、类加载器等),还提供生成火焰图、...
通过jmx可以监控vm内存使用,系统内存使用等 ,特点是通过window和linux命令获得CPU使用率。
Java生产环境下性能监控与调优详解视频教程 jstat查看JVM统计信息 jstack与线程的状态 MAT 分析内存溢出的方法 可视化工具分析GC日志 通过这套视频学习如何在生产环境下进行性能监控与调优。 视频在百度网盘中...
通过本课程,你将掌握多种性能监控工具应用,学会定位并解决诸如内存溢出、cpu负载飙高等问题;学会线上代码调试,Tomcat、Nginx,GC调优等手段; 读懂JVM字节码指令,分析源码背后原理,提升应对线上突发状况的能力...
这里说的数据包括:运行日志、异常堆栈、GC日志、线程快照文件(threaddump/javacore文件)、堆转储快照(heapdump/hprof文件)等。使用JVM命令和一查看这个JVM参数,帮助我们排查、解决问题。 1 JDK的命令行工具 ...
第56讲 可视化虚拟机工具-Jconsole内存监控 00:07:09 第57讲 可视化虚拟机工具-Jconsole线程监控 00:12:18 第58讲 死锁原理以及可视化虚拟机工具-Jconsole线程死锁监控 00:10:38 第59讲 VisualVM使用...
安卓手机安卓后可以监控耗电量以及内存,大家可以安卓试试。