使用 PSM 指標監視記憶體問題
PMS 會追蹤 JVM 因記憶體回收而沒有回應的持續時間。暫停 (未主動執行工作) 所耗費的時間量可透過建立自訂圖表來確定,可使用 Charting > Custom > Server Side Performance > Agent Based Measures > Java Virtual Machine > Suspension Time 選項建立。
若使用建議的 Garbage First (G1) 收集器,JVM 會一次暫停活動最多 200 ms。一般而言,若暫停時間在 200 ms 到 5000 ms 的範圍內,ThingWorx 會保持回應。下圖顯示整個應用程式長時間不回應的情境。
通常,如果 GC 活動較慢,則表示這段期間的記憶體使用量較高。顯示在作業系統層級的記憶體使用量不會擷取 Java 在內部使用了堆集的多少記憶體的相關資料。您可在 PSM 中使用 Charting > Custom > Server Side Performance > Agent Based Measures > Java Virtual Machine > Used Memory 選項取得此資訊。
當 Java 不斷在內部使用較多記憶體時,它可能會成為效能瓶頸。PSM 可用來深入至高 GC 暫停或高記憶體使用量的任何期間,以識別當時的基礎使用者交易。應調查與記憶體問題對應的長 PurePaths。
如果應用程式處於記憶體不足狀態,PSM 會建立一個事件。對於任何記憶體不足情況,PSM 都會產生如上所示的兩個圖表,以協助識別記憶體使用量達到尖峰的時刻。您可以分析在該時刻執行的 PurePaths,來深入到特定交易。
建議 - 設定 PSM 警示或每日排程,以檢查 JVM 暫停時間及已使用的記憶體。監視 PSM 中的任何記憶體不足事件。