在JVM上监视哪些性能指标?

我想在我们的JVM上做一些性能监控。

除了我已经在我的名单上已经有的明显的东西,监测什么是有趣的?

  • JVM空闲/总内存
  • GC率(每分钟多less)
  • GC的持续时间

对于大量multithreading的应用程序,与线程相关的度量标准对于性能和可用性监视都很有用。 这样你可以监视过度的争用和排队,潜在的僵局,这样的事情。

看看线程度量如何与CPU和内存度量关联起来也是有用的。 例如,如果你看到频繁的完整的GC,知道其中一个线程的运行时间比你平常所期望的长得多,这将是有用的。 它可能被困在一个无限循环中,堆积如山。

这里有一些想法:

http://www.informit.com/guides/content.aspx?g=java&seqNum=250

您的名单涵盖了必需品。 一些额外的东西:

  • JVM的CPU使用情况
  • 您也可以查看Java Management Extensions (JMX)来监视JVM正在做什么。 如果应用程序支持JMX(例如大多数appservers),则JMX允许您向JVM查询诸如空闲内存或GC详细信息之类的内容,并从VM中运行的应用程序获取信息。 这样你可以查询关键的日志条目,数据库故障,交易次数/秒等