Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Visual VM是否会影响受监控JVM的性能?_Java_Visualvm - Fatal编程技术网

Java Visual VM是否会影响受监控JVM的性能?

Java Visual VM是否会影响受监控JVM的性能?,java,visualvm,Java,Visualvm,我正在考虑用Java Visual VM评测一个生产环境。我想问你: CPU使用率 气相色谱活性 旧堆 线程状态 这种监视对JVM的性能有任何重大影响吗?这完全取决于您对它所做的操作,性能影响的实际程度很难确定 如果您通过JVM的MXBeans监视某些GC,那么它的影响很小,如果您持续监视它,那么它的影响很大 如果您需要调查与CPU相关的问题,采样提供了一种识别瓶颈的简单机制,对性能的影响最小。根据我的经验,除非您使用探查器,否则不会出现明显的减速。在探查器模式下,性能影响是否显著取决于过滤

我正在考虑用Java Visual VM评测一个生产环境。我想问你:

  • CPU使用率
  • 气相色谱活性
  • 旧堆
  • 线程状态

这种监视对JVM的性能有任何重大影响吗?

这完全取决于您对它所做的操作,性能影响的实际程度很难确定

如果您通过JVM的MXBeans监视某些GC,那么它的影响很小,如果您持续监视它,那么它的影响很大


如果您需要调查与CPU相关的问题,采样提供了一种识别瓶颈的简单机制,对性能的影响最小。

根据我的经验,除非您使用探查器,否则不会出现明显的减速。在探查器模式下,性能影响是否显著取决于过滤器。取样器是一个更安全的选择,但是您必须注意,启用两者都会触发一些热代码替换,这会导致系统在短时间内不可用(也可能触发以下情况:)

当然,如果您只是想获得基本信息(内存、cpu图、gc和线程数),那么影响会更小

我对我的答案有多确定?到目前为止,我已经使用JVisualVM、JProfiler和YourKit将近10年了。我们在客户的生产代码(一个常规web应用程序)中使用了yourkit中的采样/监控模式(其功能基本上与jvisualVM相同)来分析性能缺陷。它没有任何明显的影响


<>但是,如果只需要基本的系统监控,可能会有更合适的产品来考虑,比如java旋律()或KIEKER()。这取决于很多因素。如果只是访问MBean属性或调用操作,那么影响很小。但一旦启动CPU/内存采样器或探查器,它就会显著增加影响。有多重要?让我看看

抽样对性能的影响:

将VisualVM连接到一个简单的程序,该程序在启动时休眠(什么也不做)。因此,主线程处于休眠状态。我启动CPU采样器60秒。总CPU时间的60秒读数为5640ms(5.64秒)


这是当我连接使用本地机器没有任何加密。当您将使用SSL添加加密时(这是生产环境所必须的)。影响将进一步增加。

很可能不会。但是你为什么不试试呢?这个问题太广泛了。在它目前的形式中,答案是“是的,它有”。我刚才澄清了这个问题。它是关于cpu、内存、gc和线程的简单监控。