我有一些时髦的代码,每分钟都会挖掘tomcat并将结果转储到数据库中,如下所示:
while(true){
def values = []
// some code omitted
//java.lang:type=GarbageCollector PS Scavenge, PS MarkSweep
def markSweep = new GroovyMBean(server, 'java.lang:type=GarbageCollector,name=PS MarkSweep')
values.push(markSweep.CollectionCount)
values.push(markSweep.CollectionTime) //in ms
def scavenge = new GroovyMBean(server, 'java.lang:type=GarbageCollector,name=PS Scavenge')
values.push(scavenge.CollectionCount)
values.push(scavenge.CollectionTime) //in ms
}
然后,我今天监视一段时间内的输出,这就是我所看到的:
GC Monitoring
您可以看到计数和时间都在单调增加。我期望内存中对象的数量会增加和减少计数。这些MBean的时间和计数是否累积?
最佳答案
是的,它们是单调的计数器。如果要跟踪速率,请存储读数和先验值的增量。