Utilizzo dei criteri di misurazione PSM per monitorare i problemi di memoria
PMS tiene traccia del tempo durante il quale JVM non risponde a causa della garbage collection. È possibile specificare la quantità di tempo trascorso in sospensione (senza eseguire attivamente alcuna operazione) mediante la creazione di un grafico personalizzato, disponibile nell'opzione Charting > Custom > Server Side Performance > Agent Based Measures > Java Virtual Machine > Suspension Time.
Con il collector Garbage First (G1), consigliato, JVM sospende l'attività per un massimo di 200 ms alla volta. In genere ThingWorx rimane attivo con pause che rientrano nell'intervallo compreso tra 200 ms e 5000 ms. Il grafico seguente mostra gli scenari in cui l'intera applicazione non risponde per lunghi periodi.
In genere i periodi di attività lenta del GC corrispondono a periodi di utilizzo intensivo della memoria. L'utilizzo della memoria, mostrato a livello di sistema operativo, non recupera i dati relativi alla quantità di memoria utilizzata da Java internamente nel rispettivo heap. È possibile ottenere queste informazioni in PSM utilizzando l'opzione Charting > Custom > Server Side Performance > Agent Based Measures > Java Virtual Machine > Used Memory.
Quando Java utilizza internamente la memoria in modo intensivo e costante, si può verificare un collo di bottiglia delle prestazioni. Viene utilizzato PSM per eseguire il drill-down in qualsiasi periodo di sospensione significativa del GC o di utilizzo intensivo della memoria per identificare le transazioni utente sottostanti in quel momento. È necessario esaminare i PurePath lunghi che corrispondono ai problemi di memoria.
Se l'applicazione è in stato di memoria esaurita, PSM crea un incidente. Per qualsiasi condizione di memoria esaurita, PSM genera i due grafici menzionati per permettere di identificare quando si è verificato il picco di utilizzo della memoria. È possibile eseguire il drill-down in transazioni specifiche analizzando i PurePath eseguiti in quel momento.
Consiglio - Impostare l'avviso PSM o una programmazione giornaliera per controllare il tempo di sospensione e la memoria utilizzata in JVM. Monitorare eventuali incidenti di memoria esaurita in PSM.