2011-09-23 146 views
4

是否有一种很好的工具可以对使用J2EE和客户端的系统进行端到端分析?Web/J2EE和客户端应用程序的端到端分析

我意识到你可以很容易地分析服务器和客户端分开。但是,我不知道有哪些工具可以为您提供有关两者之间网络连接效果的信息,以及它们如何影响其性能。 [端到端分析器,将考虑应用程序何时停止通信以及何时处理]

+0

您正在使用哪个应用服务器? –

+0

我正在使用Tomcat6 – monksy

+0

您使用的客户端是?您是否希望分析代理在远程客户端和服务器上或同一台计算机上运行? –

回答

2

我不知道任何性能分析代理程序提供开箱即用的功能以端对端地描述应用程序。至少,不是在编写本文时。

但是,您可以考虑使用DTrace同时从客户端和服务器收集分析信息(不一定是典型分析器提供的所有信息)。有关如何在Java Web应用程序(以Firefox作为客户端,以及Tomcat作为服务器)中使用此功能的示例,请参阅this article。诀窍在于将DTrace工具内置到JVM(运行服务器)和客户端中,并编写一个DTrace脚本,将收集到的信息从跟踪写入可解析输出。因为,问题不清楚客户端是否使用Java,我会假设客户端也使用Java;如果不是,应用程序/可执行文件必须支持DTrace检测。

几个注意事项是,虽然被提及:

  • DTrace是不是在所有的操作系​​统中使用。
    • 它目前在Solaris 10和Mac OS Leopard中可用。
    • 我不知道在Linux发行版中支持Dtrace,其中推荐使用SystemTap。 FreeBSD有一个DTrace的实验实现。应该指出的是,SystemTap不是用于Linux的DTrace的实现,而是它本身完全不同的实体。
    • 在MSFT Windows上,您只需暂时保留自己的位置。
  • 假设关于JVM和客户端(因为我知道,服务器上的JVM上运行)
    • 如果你的客户是一个JVM,那么你必须使用具有DTrace检测或同等学历(I”一个JVM在这里引用SystemTap),或者DTrace/SystemTap脚本不起作用。这意味着,除非您的发行版的JRE/JDK的作者添加了代码来支持DTrace/SystemTap,否则您不得不使用内置此类支持的JVM。如果它在您的上下文中很重要,则OpenJDK 1.6 .0似乎具有对SystemTap的检测支持,并且用于Solaris的Oracle/Sun Java 6分发版支持DTrace。在Solaris上的Java 1.4和5上,您需要安装JVMTI代理。
    • 如果您的客户端是用不同语言编写的Web浏览器或胖客户端,那么您必须确保它所运行的进程可以支持DTrace。例如,配备DTrace的Firefox可在Solaris 10上使用,并且大概在Solaris Express 11上(我仅在OpenSolaris 2009.06上验证了DTrace支持)。 SystemTap探针尚未添加到Firefox的许多Linux发行版中,所以您通常需要从源代码构建Firefox,并在Firefox构建脚本中添加适当的标记以添加探针;我以前对这个过程的经验使我相信这是可行的,但并不容易。如果您正在运行与客户端不同的应用程序(无论是Firefox还是JVM),那么您需要验证DTrace/SystemTap对它的支持。
  • 编写好的DTrace/SystemTap脚本来收集分析信息并不容易。您需要学习另一种语言,并且您需要确保脚本不会添加自己的开销(并且在分析环境中验证海森堡不确定性原则)。

您当然可以编写通过远程客户端和服务器运行的DTrace/SystemTap脚本,但不建议将收集的检测数据写入套接字(以避免上述开销)。

1

从版本8.0开始,JProfiler能够跟踪两个概要分析的JVM之间的RMI,Web服务和远程EJB调用。

在使呼叫的JVM,调用点有带你到远程JVM执行网站的超链接:

enter image description here

在遥控器上侧,执行网站每个呼叫单独记录站点,因此您可以单独检查呼叫。

enter image description here

免责声明:我公司开发的JProfiler。