[Java]查看JVM的状态

写在前面

我们写的代码都是运行在JVM上面的,虽然代码的逻辑我们是知道的,但是JVM对我们来讲就像是一个黑盒。通常情况下会用qps、rt这些指标来反应程序性能和质量,但是在出现性能问题的时候我们怎么取查看到底是哪里处理问题?

jstat

这应该是最常用也是最方便的工具,用法如下:
jstat -<option> [-t] [-h<lines>] <vmid> [<interval> [<count>]]
通过option参数可以看到不同的数据,不过大部分都是来看GC的情况。比如:
jstat -gcutil 12728 10000 10
其他类似的option有:
  • gcnew
  • gcnewcapacity
  • gcold
  • gcoldcapacity
  • gcpermcapacity
  • gccause
另外,多数情况下Full GC会跟加载的Class太多有关系,jstat也可以进行查看:
jstat -class 12728 10000 10
在运行时,如果有大量的字节码会被编译成本地代码的话,这部分的工作也比较耗时间(Server模式下启动较慢,但是启动之后比Client模式运行的快):
jstat -compiler 12728 10000 10
jstat -printcompilation 12728 10000 10

MBean


















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值