jps、jinfo、jstat、jmap和jstack如何获得有关本地Java进程的信息?
jps、jinfo、jstat、jmap和jstack如何获得有关本地Java进程的信息?,java,linux,process,jvm,Java,Linux,Process,Jvm,jps如何获取有关所有本地java进程的信息? 它是否连接到某个本地服务器进程以获取信息 jinfo、jstat、jmap和jstack如何获取有关本地java进程的信息?他们是否连接到一些本地服务器进程以获取信息 jstatd是否仅用于提供对本地java进程的远程访问,而不用于提供对本地java进程的本地访问 我正在运行Ubuntu。我的问题来自。jps通过扫描/tmp/hsperfdata目录来查找正在运行的Java进程。每个基于热点的Java进程在此目录中创建一个名称等于进程ID的文件 文
jps
如何获取有关所有本地java
进程的信息?
它是否连接到某个本地服务器进程以获取信息
jinfo、jstat、jmap
和jstack
如何获取有关本地java
进程的信息?他们是否连接到一些本地服务器进程以获取信息
jstatd
是否仅用于提供对本地java
进程的远程访问,而不用于提供对本地java
进程的本地访问
我正在运行Ubuntu。我的问题来自。
jps
通过扫描/tmp/hsperfdata
目录来查找正在运行的Java进程。每个基于热点的Java进程在此目录中创建一个名称等于进程ID的文件
文件/tmp/hsperfdata./
包含JVM导出的各种计数器。这些计数器可以由外部进程读取。这正是jstat
的工作原理。我在中描述了jvmstat性能计数器
因此,jstat
始终可以读取本地Java进程的计数器,但是为了能够监视远程机器,jstatd
需要运行
jmap
,jstack
和jinfo
使用动态连接机制。这些实用程序通过UNIX域套接字连接到目标JVM,并向JVM发送相应的命令。该命令由远程JVM本身执行。查找有关动态附加in和in的更多信息。为什么要两次问同一个问题?为什么你要问同样的问题两次?我为你的误解道歉。实用程序总是通过Unix域套接字连接到目标JVM吗@apangin@MS90在JDK 8和更早的jmap
和jstack
中,强制模式为-F
。在这种模式下,他们使用了工作方式完全不同的服务性代理。链接答案和演示文稿包含更多详细信息jinfo
在JDK 9之前也使用了可维护性代理。由于JDK 9,这些实用程序总是连接到Linux和macOS上的套接字,或者在Windows上运行远程线程。感谢您的友好和知识共享回答,@apangin。继续做好工作。