一尘不染

jps,jinfo,jstat,jmap和jstack如何获取有关本地Java进程的信息?

linux

如何jps获得有关 所有本地java流程的信息?它是否连接到某些本地服务器进程以获取信息?

如何做jinfo, jstat, jmap,并 jstack获得有关信息 本地java处理?他们是否连接到某些本地服务器进程以获取信息?

jstatd仅用于提供本地远程访问java的过程,但不是提供给当地的本地接入java流程?

我正在运行Ubuntu。我的问题来自http://codingdict.com/questions/121394


阅读 276

收藏
2020-06-03

共1个答案

一尘不染

jps通过浏览/tmp/hsperfdata_<username>目录查找正在运行的Java进程。每个基于HotSpot的Java进程都会在该目录中创建一个文件,其名称等于进程ID。

该文件/tmp/hsperfdata_<username>/<pid>包含JVM导出的各种计数器。这些计数器可以由外部进程读取。这就是jstat工作原理。我在JavaMagazine文章中介绍了jvmstat性能计数器。

因此,jstat始终可以读取本地Java进程的计数器,但是为了能够监视远程计算机,jstatd需要运行。

jmapjstackjinfo使用动态附加机制。这些实用程序通过UNIX域套接字连接到目标JVM,并将相应的命令发送到JVM。该命令由远程JVM本身执行。在此答案此演示文稿中找到有关动态附加的更多信息。

2020-06-03