jProfiler 找不到 JVM
我已经在生产服务器上启动了 jprofiler,经过一些分析后我已经杀死了它(kill -9)。
现在我尝试再次启动它,但只收到“未找到未配置文件的 JVM”。信息, 但 jps 命令说我的应用程序正在运行(我可以看到它实际上可以自己工作)。
jprofiler 可能会在某个文件中存储有关当前它分析的 jvm 的信息,并且 Kill 命令阻止它更新此文件。那么如何手动清理呢?
ps我尝试删除然后再次解压jprofile,但仍然不起作用。
I've started jprofiler on my production server and after some profiling I've killed it (kill -9 ).
Now I'm trying to start it again and receive only "No unprofiled JVMs found." message,
but jps command says that my application is running (and I can see that it works by myself actually).
Probably jprofiler stores info about which jvms it profiles at the moment in some file and
kill command prevented it from updating this file. So how can I clean it manually?
p.s. I've tried to delete and then unpack jprofile again, still not working.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
JProfiler 通过作为 JDK 一部分的“Attach API”查找 JVM。看一下
$TMP/hsperfdata_$USER
目录,它是由热点JVM创建的。它应该包含所有正在运行的 JVM 的 PID 文件。如果没有,请删除该目录并重新启动所有 JVM。JProfiler finds JVMs via the "Attach API" that is part of the JDK. Have a look at the
$TMP/hsperfdata_$USER
directory, which is created by the hot spot JVM. It should contain PID files for all running JVMs. If not, delete the directory and restart all JVMs.看看这个QA,不可能卸载Jprofiler代理在 java 进程上,除非你杀死 jp。
我不确定你是否真的能杀死特工。
“未找到未配置文件的 JVM。”当您启动 Jprofiler 两次时,将会出现该消息。
尝试重新启动受监控的java应用程序。
look at this QA, it is not possible to unload a Jprofiler agent on a java process unless you kill the jp.
I'm not sure if you can really kill the agent.
"No unprofiled JVMs found." message will occur when you start Jprofiler twice.
Try to restart the monitored java application.
在 WLS 服务器上,这通常意味着您重新启动了服务器并有两个 JVM 运行。
我运行它来启动 jpenable:
./jpenable --gui --port=8888 --pid=$WLS_ID
并得到这个错误:
PID 14690 的 JVM 未进行分析。
杀死列出的那个:
kill -9 14690
重新运行上面的 jpenable 启动命令并输出以下内容:
正在连接到 weblogic.Server [18037] ...
现在可以使用 JProfiler GUI 在端口 8888 上进行连接
18037 是无法与 JProfiler 客户端连接的 JVM 的 PID
On the WLS server, this usually means that you restarted the server and have two JVMs rumming.
I run this to start jpenable:
./jpenable --gui --port=8888 --pid=$WLS_ID
and get this error:
The JVM with PID 14690 is not unprofiled.
Kill the one listed:
kill -9 14690
Rerun the jpenable startup command above with this output:
Connecting to weblogic.Server [18037] ...
You can now use the JProfiler GUI to connect on port 8888
18037 is the PID of the JVM that can not be connected with the JProfiler client