JDK 自带工具试用(一)

来源:互联网 发布:顺丰网络人工在线客服 编辑:程序博客网 时间:2024/05/01 16:25

简述:

运维监控会用到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目录,

运行  


出现界面,
























































0 0
原创粉丝点击