使用 PSM 指标监视内存问题
PMS 跟踪 JVM 因无用单元收集而无法响应的时间段。通过创建自定义图形确定暂停 (未主动执行工作) 所消耗的时间量,该操作可通过“制作图表” > “自定义” > “服务器端性能” > “基于代理的测量” > “Java 虚拟机” > “暂停时间”选项实现。
使用建议的 Garbage First (G1) 收集器,JVM 每次最多可暂停活动 200 毫秒。通常,ThingWorx 会在暂停的 200 ms 到 5000 ms 内仍保持响应。下图显示了整个应用程序长时间无响应时的情景。
通常,缓慢的 GC 活动期间与高内存使用率期间相对应。在操作系统级别显示的内存使用率不会检索 Java 内部用于其堆的内存量数据。您可以在 PSM 中使用“制作图表” > “自定义” > “服务器端性能” > “基于代理的测量” > “Java 虚拟机” > “已用内存”选项获取此信息。
当 Java 在内部始终使用高内存时,可能会产生性能瓶颈。PSM 用于深入查看高 GC 暂停或高内存使用率的任意时段,以确认当时的潜在用户事务。应调查与内存问题相对应的长 PurePaths。
如果应用程序处于内存不足状态,则 PSM 会创建一个事件。对于任何内存不足的情况,PSM 都会生成所述的两个图形,以帮助确认出现内存使用率峰值的时间。您可以通过分析当时执行的 PurePaths 来深入了解特定事务。
建议 - 设置 PSM 警报或每日计划,以检查 JVM 暂停时间和已用内存。监视 PSM 中是否存在任何内存不足事件。