我正在尝试跟踪Grails应用程序中的内存泄漏并使用Yourkit Profiler,但遇到了问题。
我在生产服务器上运行Tomcat6中的Grails应用程序并解压缩YourKit分析器并使用sudo bin/yjp.sh -attach
运行according to the documentation但是我收到错误:
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.yourkit.Main$2.run(a:19)
Caused by: com.yourkit.runtime.PresentableException: com.sun.tools.attach.AttachNotSupportedException: Unable to open socket file: target process not responding or HotSpot VM not loaded
at com.yourkit.ui.s.n.a(a:170)
at com.yourkit.ui.s.n.a(a:176)
at com.yourkit.ui.s.j.a(a:250)
at com.yourkit.c.do(a:73)
at com.yourkit.Main0.entry(a:274)
... 5 more
我使用的是YourKit v10,我在Ubuntu 11.04服务器上。有什么想法吗?
答案 0 :(得分:1)
看起来我必须以运行容器的用户身份运行。将sudo bin/yjp.sh -attach
更改为sudo -u tomcat6 bin/yjp.sh -attach
有效。
答案 1 :(得分:0)
在继续之前,您需要使用Attach API:
com.sun.tools.attach.AttachNotSupportedException: Unable to open socket file: target process not responding or HotSpot VM not loaded
请参阅JVisualVM常见问题解答 - 此处也可以使用它们的故障排除。