如何使用jstat或其他基于命令行的工具获取当前/最大jvm堆利用率(单个值)?

ghhaqwfi  于 5个月前  发布在  其他
关注(0)|答案(3)|浏览(55)

JConsole或J VisualVM显示最大堆大小和当前堆利用率。如何使用基于命令行的工具(如jstat)在应用程序的生命周期内获得相同的值?
从我使用jstat -gc(S 0 C S1 C S 0 U S1 U EC EU OC CNOMC MU CCSC CCSU YGC YGCT FGC FGCT GCT)收集的指标中,我如何计算JConsole/Visual VM给出的(单个值)堆利用率?

gijlo24d

gijlo24d1#

除了使用jstatjps之外,您还需要使用诸如jmxterm之类的JMX客户端来访问服务器上的这些指标。另一种选择是将Jolokia包含在服务器应用程序中,这将通过HTTP在服务器上公开MBeans,例如,您可以在Bash脚本中使用cURL。

rqmkfv5c

rqmkfv5c2#

你可以使用一些bash命令沿着jstat来得到想要的结果。例如,下面的命令会给你给予Eden空间的使用情况。

jstat -gc <PID> | sed -n 2p | awk '{ print $6; }'

字符串

a0zr77ik

a0zr77ik3#

如果你有jstat的测量结果,你需要了解Heap的情况和GC发生的趋势。如果你没有分析工具,你可以先使用下面的链接。
https://visualgc.streamlit.app/Jstat_Analyzer

相关问题