Java应用程序监视时间更长?

问题描述 投票:0回答:1

使用JConsole之类的工具,我可以实时监视Java应用程序。如何在更长的时间内分析性能?比方说一天?还是一周?

我可以使用像jConsole这样的简单工具吗?

java performance visualvm jconsole jvisualvm
1个回答
0
投票

有一些通用的“监视尽可能多的参数”方法的选项:

  • 命令行:jcmd <PID|main class> PerfCounter.printref)–然后,您需要将其输出的属性的名称环绕起来,安排定期运行此属性,将数据存储在某个地方,然后对其进行可视化。
  • 很多(全部?)这些信息也被JMX bean公开。然后您可以找到它们(例如,您可以看到它们以及它们在JConsole中导出的内容),并使用诸如jmxterm您可以记录值并将其可视化。相同的过程:安排自己,进行记录,可视化自己。它不是太用户友好,所以我要提到这种方法的原因是...
  • ...人们通常使用专门的监视系统(例如Graphite,Zabbix,Logstash / Kibana等。我将它们与“ Java / JVM / JMX / JFR”一起作为搜索的关键字输入)可以收集信息通过JMX从Java流程中提取并很好地呈现。这些系统解决了定期运行,存储时间序列数据,可视化的问题。
  • JFR(“ Java Flight Recorder”)是JVM内置的一种机制,它允许连续记录许多JVM +系统指标,将它们定期转储到文件中,然后可以使用JMC(“ Java Mission Control”)。从某种意义上讲,它是“便宜”的,您不需要安装/支持单独的监视系统,但是访问性较差(除非与监视系统配对):您需要收集,下载,处理files。] >
  • [除了这些,还有jstatjcmd ... PerfCounter.print基本相同,但主要用于与内存相关的指标,它内置了“定期运行”功能,并且呈现的结果略有不同(一个“记录” – 1行)。

我会说:如果您需要一次或偶尔执行一次,可能需要更长的时间,并且只需要一些参数,例如内存/线程数/ ...,然后使用jstat,[C0 ];如果需要更多参数,则使用JFR / JMC。如果您需要它作为与系统一起运行的东西,并且始终收集并呈现给那些在JVM所驻留的系统中没有管理员权限的人员使用,请查看监视系统及其与Java应用程序的集成。

© www.soinside.com 2019 - 2024. All rights reserved.