JDK 自带工具试用(一) 1. jps  2. jstat  3. jinfo 4. jmap  5. jconsole 

JDK 自带工具试用(一)
1. jps 
2. jstat 
3. jinfo
4. jmap 
5. jconsole 

简述:

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

说明:

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

我在eclipse中起了一个web 应用

JDK 自带工具试用(一)
1. jps 
2. jstat 
3. jinfo
4. jmap 
5. jconsole 

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

JDK 自带工具试用(一)
1. jps 
2. jstat 
3. jinfo
4. jmap 
5. jconsole 

jps -v

JDK 自带工具试用(一)
1. jps 
2. jstat 
3. jinfo
4. jmap 
5. jconsole 

看到10376之后用taskkill指令关闭

JDK 自带工具试用(一)
1. jps 
2. jstat 
3. jinfo
4. jmap 
5. jconsole 

2. jstat 

虚拟机统计信息监视工具

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

JDK 自带工具试用(一)
1. jps 
2. jstat 
3. jinfo
4. jmap 
5. jconsole 

于是使用

[plain] view plaincopyJDK 自带工具试用(一)
1. jps 
2. jstat 
3. jinfo
4. jmap 
5. jconsole JDK 自带工具试用(一)
1. jps 
2. jstat 
3. jinfo
4. jmap 
5. jconsole 
 
  1. cd C:UsersAdministratorDesktopjvm monitor  

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

[plain] view plaincopyJDK 自带工具试用(一)
1. jps 
2. jstat 
3. jinfo
4. jmap 
5. jconsole JDK 自带工具试用(一)
1. jps 
2. jstat 
3. jinfo
4. jmap 
5. jconsole 
 
  1. jstat -gcutil 8832 >>jstat_result.txt  



JDK 自带工具试用(一)
1. jps 
2. jstat 
3. jinfo
4. jmap 
5. jconsole 

查询结果表明

在新生代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

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

通过命令

[plain] view plaincopyJDK 自带工具试用(一)
1. jps 
2. jstat 
3. jinfo
4. jmap 
5. jconsole JDK 自带工具试用(一)
1. jps 
2. jstat 
3. jinfo
4. jmap 
5. jconsole 
 
  1. java -XX:+PrintFlagsFinal  > printFlagsFinal_result.txt  

获取当前的jvm信息

从中可以看到

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

[plain] view plaincopyJDK 自带工具试用(一)
1. jps 
2. jstat 
3. jinfo
4. jmap 
5. jconsole JDK 自带工具试用(一)
1. jps 
2. jstat 
3. jinfo
4. jmap 
5. jconsole 
 
  1. jinfo -sysprops 12408 > jinfo_result.txt  

jinfo查看参数

试着修改 CMSInitiatingOccupancyFraction 

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

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

通过jinfo查询得到该参数

JDK 自带工具试用(一)
1. jps 
2. jstat 
3. jinfo
4. jmap 
5. jconsole 

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

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

-Xmx 最大堆大小

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

-Xss 每个线程的堆栈大小

4. jmap 

Java 内存映像工具

输入指令

[plain] view plaincopyJDK 自带工具试用(一)
1. jps 
2. jstat 
3. jinfo
4. jmap 
5. jconsole JDK 自带工具试用(一)
1. jps 
2. jstat 
3. jinfo
4. jmap 
5. jconsole 
 
  1. jmap -dump:format=b,file=jmap_result.bin 12408  


于是会生成jmap_result.txt文件

JDK 自带工具试用(一)
1. jps 
2. jstat 
3. jinfo
4. jmap 
5. jconsole 

需要在eclipse中安装Memory Analyzer插件

http://download.eclipse.org/mat/1.4/update-site/

JDK 自带工具试用(一)
1. jps 
2. jstat 
3. jinfo
4. jmap 
5. jconsole 

进入Memory Analysis perspective

JDK 自带工具试用(一)
1. jps 
2. jstat 
3. jinfo
4. jmap 
5. jconsole 

而后

File -> Open Heap Dump

JDK 自带工具试用(一)
1. jps 
2. jstat 
3. jinfo
4. jmap 
5. jconsole 

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

JDK 自带工具试用(一)
1. jps 
2. jstat 
3. jinfo
4. jmap 
5. jconsole 

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

5. jconsole 

进入jdk目录,

运行  JDK 自带工具试用(一)
1. jps 
2. jstat 
3. jinfo
4. jmap 
5. jconsole 

出现界面,

JDK 自带工具试用(一)
1. jps 
2. jstat 
3. jinfo
4. jmap 
5. jconsole