我想对我们的 JVM 进行一些性能监控。
除了我列表上已经列出的明显事物之外,还有哪些有趣的事物值得监控?
- JVM 可用/总内存
- GC 速率(每分钟多少次)
- GC 持续时间
答案1
对于多线程应用,线程相关指标对于性能和可用性监控都很有用。这样您就可以监控过度争用和排队、潜在死锁等问题。
了解线程指标与 CPU 和内存指标之间的关联也很有用。例如,如果您看到频繁的完整 GC,那么了解其中一个线程的运行时间比您通常预期的要长得多会很有用。它可能陷入了无限循环并耗尽了堆。
以下是一些想法:
http://www.informit.com/guides/content.aspx?g=java&seqNum=250
答案2
您的清单涵盖了基本内容。一些其他内容:
- JVM的CPU使用率
- 你也可以看看Java 管理扩展(JMX) 监控 JVM 正在做什么。JMX 允许您查询 JVM 以获取诸如可用内存或 GC 详细信息之类的信息,并从运行在 VM 中的应用程序获取信息(如果应用程序支持 JMX,例如大多数应用服务器都支持)。这样,您就可以查询关键日志条目、数据库故障、每秒事务数等。