Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.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应用程序的长时间监控?_Java_Performance_Visualvm_Jconsole_Jvisualvm - Fatal编程技术网

Java应用程序的长时间监控?

Java应用程序的长时间监控?,java,performance,visualvm,jconsole,jvisualvm,Java,Performance,Visualvm,Jconsole,Jvisualvm,使用像JConsole这样的工具,我可以实时监视Java应用程序。如何分析较长时间内的性能?比如说一天?还是一周 有像jConsole这样的简单工具可以使用吗?通用的“尽可能多地监视参数”方法有多种选项: 命令行:jcmd PerfCounter.print()–然后,您需要了解它输出的属性的名称,计划定期运行它,将数据存储在某个位置,并自己可视化它 JMX bean还公开了大量(全部?)这些信息。然后,您可以找到它们(例如,您可以在JConsole中看到它们以及它们导出的内容),并使用命令行

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


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

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

  • 命令行:
    jcmd PerfCounter.print
    ()–然后,您需要了解它输出的属性的名称,计划定期运行它,将数据存储在某个位置,并自己可视化它
  • JMX bean还公开了大量(全部?)这些信息。然后,您可以找到它们(例如,您可以在JConsole中看到它们以及它们导出的内容),并使用命令行工具(例如,您可以记录这些值并将其可视化)。同样的程序:安排你自己,记录,想象你自己。它对用户不太友好,所以我之所以提到这种方法是因为
  • …人们通常使用一个专门的监控系统(比如Graphite、Zabbix、Logstash/Kibana等——我把它们与“Java/JVM/JMX/JFR”一起作为搜索键),它可以通过JMX从Java进程收集信息并很好地呈现出来。这些系统解决了定时运行、存储时间序列数据、可视化等问题
  • (“Java飞行记录器”)是JVM中内置的一种机制,允许连续记录许多JVM+系统指标,定期将它们转储到文件中,然后您可以使用(“Java任务控制”)可视化这些指标。它“更便宜”,因为您不需要安装/支持单独的监控系统,但不易访问(除非与监控系统配对):您需要收集、下载和处理文件
除此之外,还有一个基本上与
jcmd相同的。。。PerfCounter.print
,但主要是针对内存相关指标,它内置了“定期运行”功能,并以略微不同的方式显示结果(一个“记录”-一行)


我想说:如果您需要做一次或偶尔做一次,可能需要更长的时间,并且只需要几个参数,比如内存/线程数/…,那么使用
jstat
jcmd PerfCounter.print
;如果需要更多参数,则使用JFR/JMC。如果您需要它作为与您的系统一起运行的东西,总是收集和呈现,供在JVM所在的系统中没有管理员权限的人使用,那么请查看监控系统及其与Java应用程序的集成。

通用的“尽可能多地监控参数”方法有多种选择:

  • 命令行:
    jcmd PerfCounter.print
    ()–然后,您需要了解它输出的属性的名称,计划定期运行它,将数据存储在某个位置,并自己可视化它
  • JMX bean还公开了大量(全部?)这些信息。然后,您可以找到它们(例如,您可以在JConsole中看到它们以及它们导出的内容),并使用命令行工具(例如,您可以记录这些值并将其可视化)。同样的程序:安排你自己,记录,想象你自己。它对用户不太友好,所以我之所以提到这种方法是因为
  • …人们通常使用一个专门的监控系统(比如Graphite、Zabbix、Logstash/Kibana等——我把它们与“Java/JVM/JMX/JFR”一起作为搜索键),它可以通过JMX从Java进程收集信息并很好地呈现出来。这些系统解决了定时运行、存储时间序列数据、可视化等问题
  • (“Java飞行记录器”)是JVM中内置的一种机制,允许连续记录许多JVM+系统指标,定期将它们转储到文件中,然后您可以使用(“Java任务控制”)可视化这些指标。它“更便宜”,因为您不需要安装/支持单独的监控系统,但不易访问(除非与监控系统配对):您需要收集、下载和处理文件
除此之外,还有一个基本上与
jcmd相同的。。。PerfCounter.print
,但主要是针对内存相关指标,它内置了“定期运行”功能,并以略微不同的方式显示结果(一个“记录”-一行)

我想说:如果您需要做一次或偶尔做一次,可能需要更长的时间,并且只需要几个参数,比如内存/线程数/…,那么使用
jstat
jcmd PerfCounter.print
;如果需要更多参数,则使用JFR/JMC。如果您需要它作为与您的系统一起运行的东西,总是收集和呈现,供在JVM所在的系统中没有管理员权限的人使用,那么请查看监控系统及其与Java应用程序的集成。

1)您能更深入地了解您想要精确监控的参数吗?2) 现在如何使用JConsole“分析性能”?3) 如果您告诉我们为什么在一天或一周内运行JConsole不是您的选择,即您希望从“更好”的解决方案中得到什么,这也可以使您的问题的答案更具针对性和实用性。1)您能否更深入地了解您希望精确监视的参数?2) 现在如何使用JConsole“分析性能”?3) 如果您告诉我们为什么在一天或一周内运行JConsole不是您的选择,即您希望从“更好”的解决方案中得到什么,这也可以使您的问题的答案更有针对性和有用性。