您的位置:首页 > 编程语言 > Java开发

JDK 自带工具试用(一)

2014-06-30 00:27 288 查看
简述:

运维监控会用到JDK的小工具

参考:

《深入理解 Java 虚拟机》

2012年4月第1版第6次印刷

第四章 虚拟机性能监控与故障处理工具

说明:

1. jps

用来查看当前运行的Java进程

我在eclipse中起了一个web 应用



或者用jps -l 可以查看的更清楚一点



jps -v



看到10376之后用taskkill指令关闭



2. jstat

虚拟机统计信息监视工具

先用jps查看当前启动的应用



于是使用

cd C:\Users\Administrator\Desktop\jvm monitor


gcutil 监视Java堆状况,主要关注已使用空间占总空间的百分比,包括Eden区,2个survivor区,老年代、永久代,已用空间、GC时间合计

jstat -gcutil 8832 >>jstat_result.txt




查询结果表明

在新生代Eden区使用了37.15%的空间

S0, S1 , Survivor0, Survivor1

O : Old

P: Permanent

YGC: Young GC 程序运行以来总共发生16次GC, 共耗时YGCT 13.247秒

FGC: Full GC 2次 , 耗时GCT 1.1.02秒

GC总耗时: 14.349秒

3. jinfo

实时地查看和调整虚拟机各项参数

通过命令

java -XX:+PrintFlagsFinal  > printFlagsFinal_result.txt
获取当前的jvm信息

从中可以看到

下面是调用system.getProperties() 的命令

jinfo -sysprops 12408 > jinfo_result.txt


jinfo查看参数

试着修改 CMSInitiatingOccupancyFraction

(CMS, 一种以获取最短回收停顿时间为目标的收集器, 关于JVM内存管理 参看官方文档

http://www.oracle.com/technetwork/java/javase/memorymanagement-whitepaper-150215.pdf

通过jinfo查询得到该参数



附(记录几个常用的参数):

-Xms 初始堆大小 默认物理内存的1/64(<1GB)

-Xmx 最大堆大小

-Xmn 年轻代大小 (Eden和两个Survivor区的合计大小)

-Xss 每个线程的堆栈大小

4. jmap

Java 内存映像工具

输入指令

jmap -dump:format=b,file=jmap_result.bin 12408


于是会生成jmap_result.txt文件



需要在eclipse中安装Memory Analyzer插件
http://download.eclipse.org/mat/1.4/update-site/


进入Memory Analysis perspective



而后

File -> Open Heap Dump



选内存泄露模式,于是生成一张 饼状图



(这里是引入,之后具体的检测会有新的文章做阐述)

5. jconsole

进入jdk目录,

运行


出现界面,

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: