欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-07-14 16:51:06
...

linux命令


top

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

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

每一个字段的具体含义可以参见每天一个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用的是什么算法,以及目前堆栈使用情况。
[JAVA]性能问题常用linux命令和java命令总结

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

相关标签: java 性能