使用jstat监控Java虚拟机统计信息

需积分: 5 3 下载量 187 浏览量 更新于2024-08-05 收藏 237KB PDF 举报
"jstat命令手册.pdf" `jstat` 是Java虚拟机(JVM)提供的一款强大工具,用于监视JVM的各种性能统计信息,包括类加载、实时编译器、垃圾回收等关键指标。通过使用不同的选项,我们可以获取到丰富的JVM内部运行状态。 1. **类加载统计信息**: - `class` 选项:展示关于类加载器的行为。包括已加载的类数量(Loaded)、加载的字节数(Bytes)、已卸载的类数量(Unloaded)、卸载的字节数(Bytes Unloaded)以及进行类加载和卸载操作所消耗的时间(Time)。 2. **实时编译器统计信息**: - `compiler` 选项:显示JavaHotSpot VM实时编译器的相关数据。包括已执行的编译任务数(Compiled)、编译任务失败的次数(Failed)、无效的编译任务数(Invalid)以及执行编译任务所花的时间(Time)。此外,还能获取到最近一次编译失败的类型(FailedType)和涉及的方法(FailedMethod)。 3. **垃圾回收统计信息**: - `gc` 选项:提供关于垃圾回收堆行为的概览。可以查看各代(如新生代、老年代)的统计信息。 - `gccapacity` 选项:显示各代的容量及其对应空间的大小。 - `gccause` 选项:除了提供和`gcutil`类似的GC统计信息外,还会显示最近和当前GC事件的原因。 - `gcnew` 和 `gcnewcapacity` 选项:关注新生代的行为和其容量。 - `gcold` 和 `gcoldcapacity` 选项:关注老年代和Metaspace的统计信息及容量。 - `gcmetacapacity` 选项:显示Metaspace的大小信息。 - `gcutil` 选项:提供垃圾回收的简要统计信息。 4. **其他选项**: - `-hn`:每n行输出一次列标题,帮助理解输出的数据含义。 - `-t`:将时间戳作为输出的第一列,显示自JVM启动以来的时间。 - `-JjavaOption`:允许向Java应用程序启动器传递选项,例如`-J-Xms48m`用来设置初始堆内存为48MB。 `jstat` 命令的使用灵活多样,可以根据需要监控的指标选择合适的选项,并通过指定间隔时间和循环次数来定期输出数据,这对于理解和优化JVM性能至关重要。在分析和诊断Java应用性能问题时,它是不可或缺的工具之一。