使用 Yourkit 分析 Spray HTTP 应用程序

Posted

技术标签:

【中文标题】使用 Yourkit 分析 Spray HTTP 应用程序【英文标题】:Profiling Spray HTTP Application using Yourkit 【发布时间】:2016-05-11 14:18:26 【问题描述】:

我有一个在远程机器上运行的基于 Spray 的 HTTP 应用程序,我想使用 Yourkit 对其进行分析。我按照 Yourkit 网站中提到的说明进行操作,结果遇到了这个错误:

root@remote-worker:/home/joe/yjp-2016.02/bin# sh yjp.sh -attach 19960
Attaching to process 19960 using default options
[YourKit Java Profiler 2016.02-b36] Log file: /root/.yjp/log/yjp-23609.log
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.f.a.a(a:93)
    at com.yourkit.f.b.attach(a:188)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at com.yourkit.Main$5.run(a:17)

Attach to a running JVM failed.

Solution: start JVM with the profiler agent instead of attaching it to a running JVM:
https://www.yourkit.com/docs/java/help/running_with_profiler.jsp
root@remote-worker:/home/joe/yjp-2016.02/bin# 

【问题讨论】:

【参考方案1】:

在消息末尾打印解决方案:使用分析器代理启动 JVM,而不是将其附加到正在运行的 JVM:https://www.yourkit.com/docs/java/help/running_with_profiler.jsp

Attach 仅适用于 HotSpot JVM;并且运行的JVM进程应该有足够的权限。请在https://www.yourkit.com/docs/java/help/attach_agent.jsp的“附加模式限制”中找到详细信息

【讨论】:

以上是关于使用 Yourkit 分析 Spray HTTP 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

是否有用于分析 yourkit 快照(内存/cpu)的 API? [关闭]

YourKit 未显示完整信息

YourKit - 完成的线程是啥意思?

如何使用 AKKA-HTTP、spray-json、oauth2 和 slick 优化 scala REST api?

用于 CPU 消耗的 Java 分析工具

Yourkit UI 抛出“没有在 localhost 上运行的应用程序配置为侦听端口的分析器代理”异常