2013-05-09 127 views
-5

我想監控java web應用程序,但不知道如何監控。如何監控java web應用程序

  1. 什麼是我可以通過性能監視器監視窗口或ps -ef在linux java的工作進程/線程的名字嗎?

  2. 如何監視Java工作線程池?

  3. 如何監視JVM和我應該監視的計數器?

感謝

+0

如果您願意付款並希望投入更少時間,請嘗試newrelic。 – zengr 2013-05-09 22:49:56

+0

你想通過監測完成什麼? – meriton 2013-05-09 22:56:54

回答

1

有許多工具來做到這一點。請看看JDK附帶的jvisualvm作爲其中之一。

Java進程名稱通常包含「java」字樣

2

對於任何Java進程,請嘗試JVisualVM。如果您需要特定於Web的內容,則必須提供更多詳細信息

+0

我想監視Java應用程序的進程cpu /內存使用情況。有沒有辦法直接從perfmon或ps -ef命令進行監控? – 2013-05-09 23:58:21

+0

如果你想監視Windows上的JVM進程,你可以嘗試Sysinternals Process Explorer http://technet.microsoft.com/en-us/sysinternals/bb896653。這是IMO在Windows平臺上的良好表現。但是,我必須堅持使用JVisualVM,它顯示了有關虛擬機內部和資源消耗的更多細節。我很確定那是你需要的。 – jambriz 2013-05-10 13:27:26

1

jVisualVM將與您想要的最接近,並且可以通過JDK%JAVA_HOM%/ bin/jvisualvm.exe免費獲得。您將需要使用額外的JVM選項可以掛接到你的web應用(這也將需要重新啓動):

  • -Dcom.sun.management.jmxremote

說明:能夠用於JMX代理本地接入通過註冊JVM儀表Mbean和發佈RMI連接器的專用接口上

  • -DC om.sun.management.jmxremote.port = 3333

描述:用於RMI連接的端口(必須是未使用的端口)

  • -Dcom.sun.management。 jmxremote.ssl =假

描述:禁用客戶端SSL認證(最簡單的/最快配置)的默認值

  • -Dcom.sun.management.jmxremote.authenticate =假

描述:禁用密碼認證的默認值進行遠程監控

  • -Djava.rmi 。服務器。主機名 =本地主機

說明:爲RMI監聽器選項(使用本地主機有RMI聽僅限本地或者將其設置爲應用程序服務器的主機名進行遠程監控)

運行jVisualVM並選擇「添加新JMX連接「並輸入localhost:3333。我最喜歡的擴展是線程堆棧,它顯示了當前正在運行的線程的線程堆棧。