[JAVA]性能问题常用linux命令和java命令总结

linux命令


top

top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,常用于服务端性能分析。

这里写图片描述

每一个字段的具体含义可以参见每天一个linux命令(44):top命令
,这篇文章写的很全面。


另外对于Load Average的解释可参考一幅图秒懂LoadAverage(负载)上对于Load的解释:

Load < 0.7时:系统很闲,马路上没什么车,要考虑多部署一些服务
0.7 < Load < 1时:系统状态不错,马路可以轻松应对
Load == 1时:系统马上要处理不多来了,赶紧找一下原因
Load > 5时:马路已经非常繁忙了,进入马路的每辆汽车都要无法很快的运行.


free

free命令可以显示当前系统未使用的和已使用的内存数目,还可以显示被内核使用的内存缓冲区
主要记住有如下几个选项就好了。
-b:以Byte为单位显示内存使用情况;
-k:以KB为单位显示内存使用情况;
-m:以MB为单位显示内存使用情况;
-g:以GB为单位显示内存使用情况。


java命令

jps

全称:JVM Process Status Tool
-l: 输出应用程序主类完整package名称或jar完整名称。
-v: 列出jvm参数, 这个比较有用,利于分析。
-m:输出主函数传入的参数。

jstat

全称:JVM Statistics Monitoring Tool,用于收集HotSpot虚拟机各方面的运行数据。
用的比较多的是-gcutil选项。
例子:

jstat -gcutil 21891 250 7
  S0 S1 EOP YGC YGCT FGC FGCT GCT 
 12.44 0.00 27.20 9.49 96.70 78 0.176 5 0.495 0.672 
 12.44 0.00 62.16 9.49 96.70 78 0.176 5 0.495 0.672
 12.44 0.00 83.97 9.49 96.70 78 0.176 5 0.495 0.672 
  0.00 7.74 0.00  9.51 96.70 79 0.177 5 0.495 0.673 
  0.00 7.74 23.37 9.51 96.70 79 0.177 5 0.495 0.673 
  0.00 7.74 43.82 9.51 96.70 79 0.177 5 0.495 0.673 
  0.00 7.74 58.11 9.51 96.71 79 0.177 5 0.495 0.673

这个例子的输出显示,年轻一代收集发生在第三和第四样本之间。收集耗时0.001秒,将物体从Eden空间(E)推广到旧空间(O),导致旧空间利用率从9.49%增加到9.51%。在收集之前,幸存者空间利用率为12.44%,但收集后只有7.74%被利用。

jmap

我用的比较多的是jmap -heap 19798,可以看到GC用的是什么算法,以及目前堆栈使用情况。
这里写图片描述

笔者还处于性能问题的初学阶段,此文仅供参考。待后续实战经验丰富,会继续完善本文。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值