我正在考慮用Java Visual VM剖析生產環境。我想montitor:Java Visual VM是否會影響受監控的JVM的性能?
- CPU使用率
- GC活動
- 使用的堆
- 螺紋
這是否監控必須在JVM性能的任何顯著影響的狀態?
我正在考慮用Java Visual VM剖析生產環境。我想montitor:Java Visual VM是否會影響受監控的JVM的性能?
這是否監控必須在JVM性能的任何顯著影響的狀態?
根據我的經驗,除非您使用探查器,否則不會顯着減速。使用Profiler模式,這是您的過濾器問題,無論性能影響是否顯着。採樣器是一個更安全的選擇,但是您必須注意,啓用任何一個都會觸發一些熱代碼替換,這會導致系統在短時間內無法使用(並且可能會觸發該代碼:JDK7 Application is getting slow after some Uptime)。
當然,如果您只想獲得基本信息(內存,cpu-graph,gc和線程數),其影響會更低。
我的答案有多確定?到目前爲止,我已經使用JVisualVM,JProfiler和YourKit近10年了。我們在客戶的產品代碼(常規網絡應用程序)中使用yourkit中的採樣/監控模式(與jvisualVM的功能基本相同)來分析性能錯誤。它沒有任何明顯的影響。但是,如果您只需要基本的系統監控,則可能會有更合適的產品需要考慮,比如java旋律(https://github.com/javamelody/javamelody/wiki)或kieker(http://kieker-monitoring.net/)。
這一切都取決於你在做什麼,性能影響的實際程度很難確定。
如果您通過JVM的MXBeans監視某個GC,它的影響很小,如果您經常監視它,它會產生很大的影響。
如果您需要調查與CPU相關的問題,抽樣可以提供一種簡單的機制來識別瓶頸,並且對性能影響最小。
Thx。我剛纔澄清了這個問題。這是關於cpu,內存,gc和線程的簡單監控。 –
很可能不是。但爲什麼你不試試呢? – XtremeBaumer
這個問題太廣泛了。目前的答案是「是的,它的確如此」。 –