2008-09-16 56 views
4

是否有人使用新的Java 1.6 JDK工具VisualVM來分析生產應用程序,以及應用程序在分析時如何執行?Java 1.6 JDK工具,VisualVM

該文檔說它是爲生產和開發使用而設計的,但基於以前的分析經驗和其他分析工具,我很猶豫。

回答

5

雖然我還沒有親自使用過VisualVM,但是我在今天看到這個blog post可能會爲您提供一些有用的信息。他談到使用它來分析生產應用程序。

1

我在開發箱上試了一下,發現當我關閉分析功能時,它會意外關閉Tomcat。我會非常謹慎地將其推廣到生產環境,而不是模擬臨時環境中的負載?它不如真實的東西,但它可能不會讓你被解僱,如果它出錯...

0

它是可以從另一臺計算機使用VisualVM遠程連接到您的服務器。您只需右鍵單擊「遠程」節點並說「添加遠程主機」。

這將至少消除VisualVM開銷(如果有的話)在運行時影響性能。

這可能不會消除所有性能問題,特別是在生產環境中,但它會有所幫助。

1

我之前使用過VisualVM來分析本地運行的東西。一個巨大的勝利是,我只是啓動它,它可以連接到正在運行的JVM。它比以前使用過的其他分析工具更容易使用,似乎沒有太多開銷。

我認爲它採樣。 CPU密集型應用程序的開銷似乎並不顯着。我沒有衡量任何東西(我對我的應用程序的表現感興趣,而不是工具的表現如何),但它絕對沒有我從分析中看到的10倍放緩的因素。

0

我已經使用了Net Bean分析器,它使用與Visual VM相同的基礎。

我正在使用舊版本的Weblogic,這意味着使用1.5 JVM,所以我不能做一個動態連接。我正在分析的應用程序有幾千個類,我的工作站幾乎不可用,而探查器則將它們全部裝上。一旦儀表完成後,系統很慢但不完全無法使用。減速的速度實際上取決於你需要捕捉的東西。基本的CPU指標非常輕。對內存分配進行性能分析減慢了很多事情。

我不會在生產系統上使用它。除了減速的可能性之外,我最終還是跑出了PermGen的空間,因爲當您更改設置時,分析器會重新設置並重新加載類。 (這可以在1.6代理中修復,我不知道)

1

對於只監視你的應用程序,遠程運行VisualVM不應該減慢它的速度。如果系統不在崩潰的邊緣,我仍然沒有看到任何問題。它基本上只是從JVM的粗粒度內置儀器中讀取信息。但是,如果您開始分析,則會遇到與其他分析器相同的問題。基本上,因爲它們都以幾乎相同的方式工作,通常使用JVM中的支持。

由於防火牆問題,許多人在遠程運行VisualVM時遇到問題,但您甚至可以運行Visual VM remotely over ssh,並設置了一些系統屬性。

+0

博客文章更新了一些關於啓動Jstatd的更多信息。 – hennings 2009-11-12 13:50:33

0

自從包含在JDK中之前,我一直在使用VisualVM。它對系統的性能有着可忽略的影響。我從來沒有注意到它會導致系統性能出現問題,但我們的Java服務器當時有足夠的空間來支持一些額外的負載。如果你的服務器運行在完全粘貼的級別,並且無法處理VisualVM運行,那麼我會說它更可能需要購買另一臺服務器。任何生產服務器都應該有一定的內存空間,否則你所擁有的就是一場即將發生的災難。

0

我已經非常廣泛地使用了VVM(VavaVoom?),它在光照模式下就像一個魅力一樣工作,即不分析,只是從VM獲取基本數據。但是一旦你開始分析並且有很多課程,那麼就會有相當大的放緩。我不會在生產環境中進行配置文件,即使您擁有128核心板和2 tera內存,純粹是因爲重新加載和重新定義類是棘手的,服務器類加載器是另一回事,也因服務器實現而異,在生產中干擾他們並不是一個好主意。