JDK自带工具命令使用 jps,jstat jmap jconsole

jps

与unix上的ps类似,用来显示本地的java进程,可以查看本地运行着几个java程序,并显 示他们的进程号。基本上只用这些功能,其他请看:

http://java.sun.com/javase/6/docs/technotes/tools/share/jps.html

jstat

显示加载class的数量,及所占空间等信息

jstat -class 21806

Loaded Bytes Unloaded Bytes Time

10749 12432.3 95 82.9 4.41


需要特别注意的是:Time: Time spent performing class load and unload operations.

具体含义请看:http://java.sun.com/j2se/1.5.0/docs/tooldocs/share/jstat.html

显示VM实时编译的数量等信息。

jstat -compiler 21806

Compiled Failed Invalid Time FailedType FailedMethod

1455 0 0 27.50 0

stat -gc pid:可以显示gc的信息,查看gc的次数,及时间。其中最后五项,分别是young gc的次数,young gc的时间,full gc的次数,full gc的时间,gc的总时间。

jstat -gc 21806

S0C S1C S0U S1U EC EU OC OU PC PU YGC YGCT FGC FGCT GCT

32768.0 32768.0 0.0 861.3 262144.0 213535.8 720896.0 74031.5 98304.0 55388.5 15 1.524 3 1.086 2.610

具体查看:http://java.sun.com/j2se/1.5.0/docs/tooldocs/share/jstat.html

本人关心:

YGC, Number of young generation GC Events.

YGCT, Young generation garbage collection time.

FGC, Number of full GC events.

FGCT Full garbage collection time.

GCT Total garbage collection time.

gc 最基本的概念就是回收垃圾。

jdk默认的gc有两种,young gc 和full gc.

经验:gc一天最好不要超过48次,ull GC频率 平均大约半小时1次。

具体:young gc 的帮助:http://java.sun.com/docs/hotspot/gc1.4.2/faq.html

jstat -gccapacity:可以显示,VM内存中三代(young,old,perm)对象的使用和占用大小,如:PGCMN显示的是最小perm的内存使用量,PGCMX显示的是perm的内存最大使用量,PGC是当前新生成的perm内存占用量,PC是但前perm内存占用量。其他的可以根据这个类推, OC是old内纯的占用量。

jstat -gcnew pid:new对象的信息。

jstat -gcnewcapacity pid:new对象的信息及其占用量。

jstat -gcold pid:old对象的信息。

jstat -gcoldcapacity pid:old对象的信息及其占用量。

jstat -gcpermcapacity pid: perm对象的信息及其占用量。

jstat -util pid:统计gc信息统计。

jstat -printcompilation pid:当前VM执行的信息。

除了以上一个参数外,还可以同时加上 两个数字,如:jstat -printcompilation 3024 250 6是每250毫秒打印一次,一共打印6次,还可以加上-h3每三行显示一下标题。

jmap是一个可以输出所有内存中对象的工具,甚至可以将VM 中的heap,以二进制输出成文本。使用方法 jmap -histo pid。如果连用SHELL jmap -histo pid>a.log可以将其保存到文本中去,在一段时间后,使用文本对比工具,可以对比出GC回收了哪些对象。jmap -dump:format=b,file=String 3024可以将3024进程的内存heap输出出来到String文件里。

jinfo:的用处比较简单,就是能输出并修改运行时的java进程的运行参数。用法是jinfo -opt pid 如:查看2788的MaxPerm大小可以用 jinfo -flag MaxPermSize 2788。

jconsole是一个用java写的GUI程序,用来监控VM,并可监控远程的VM,非常易用,而且功能非常强。由于是GUI程序,这里就不详细介绍了,不会的地方可以参考SUN的官方文档。

使用方法:命令行里打 jconsole,选则进程就可以了。

以下是这些工具的SUN官方说明:

jps:http://java.sun.com/j2se/1.5.0/docs/tooldocs/share/jps.html

jstat:http://java.sun.com/j2se/1.5.0/docs/tooldocs/share/jstat.html

jmap:http://java.sun.com/j2se/1.5.0/docs/tooldocs/share/jmap.html

jconsole:http://java.sun.com/j2se/1.5.0/docs/guide/management/jconsole.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值