我已经在我的生产服务器上启动了 jprofiler 并且在进行了一些分析之后我已经杀死了它(kill -9 )。
现在我试图重新启动它并只收到“未找到未配置的 JVM”。消息,但是 jps 命令说我的应用程序正在运行(我可以看到它实际上是由我自己运行的)。
可能 jprofiler 会在某个文件中存储有关其当前配置的 jvm 的信息,并且 kill 命令阻止它更新此文件。那么如何手动清理呢?
ps 我尝试删除然后再次解压缩 jprofile,仍然无法正常工作。
JProfiler 通过作为 JDK 一部分的“附加 API”查找 JVM。查看$TMP/hsperfdata_$USER
由热点 JVM 创建的目录。它应该包含所有正在运行的 JVM 的 PID 文件。如果没有,请删除该目录并重新启动所有 JVM。
看看这个 QA,除非你杀死 jp,否则不可能在 java 进程上卸载 Jprofiler 代理。
我不确定你是否真的能杀死特工。
“未找到未分析的 JVM。” 当您启动 Jprofiler 两次时会出现消息。尝试重新启动受监控的 java 应用程序。
在 WLS 服务器上,这通常意味着您重新启动了服务器并有两个 JVM 运行。我运行它来启动 jpenable: ./jpenable --gui --port=8888 --pid=$WLS_ID 并得到这个错误: PID 14690 的 JVM 不是未分析的。
杀死列出的一个: kill -9 14690
使用此输出重新运行上面的 jpenable 启动命令: Connecting to weblogic.Server [18037] ... 您现在可以使用 JProfiler GUI 连接端口 8888
18037是无法连接JProfiler客户端的JVM的PID