No, il calcolo non è corretto.Quello che desidera calcolare è
(CPU spent on GC)/(total CPU spent on JVM)
Come sottolineato negli altri commenti, la "CPU totale speso per JVM" sarà inferiore a 60 * 4, come quella assume a pieno carico del sistema dall'applicazione e non Cicli della CPU spesi dal sistema operativo o da altre applicazioni. Su linux, i comandi "time" e "ps" possono essere utilizzati per trovare il numero corretto qui.
Tuttavia, anche la "CPU spesa per GC" è difficile da individuare con il comando jstat. Sospetto che jstat riporti i tempi di wallclock (e non i tempi della CPU), che saranno inutili per il calcolo di cui sopra - di nuovo, non sai se GC ha caricato completamente tutti i core durante il periodo di tempo del wallclock. Sorprendentemente, non c'è una documentazione chiara su quale tipo di tempo (wallclock vs CPU) è riportato dal comando jstat - se mi manca, per favore lascia un commento qui.
fonte
2016-04-22 09:19:47
Questo ha senso, ma è possibile recuperare il valore di "tempo trascorso in logica" utilizzando jstat o altri strumenti? Grazie – Ryan