2011-09-23 123 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。