Java内存追踪和监测

Jennifer软件可对Java内存追踪和监测。

Jennifer对内存漏损(Leakage)追踪- Collection/Live Object

作为诱发堆内存漏损的主要原因,可以列举特定对象的持续增加和Collection类所包含的元素的增加。为追踪使用这些对象的事务,有时会使用JVMPI(JVMTI),但其技术特点上需要高CPU使用率。考虑到大部分内存漏损问题比起实际运营时期,更多是运营一段时间后与内存持续增加一同发生,很难用应用这些技术的工具分析内存漏损。

JENNIFER中虽然没有应用JVMPI(JVMTI)技术,也可以监测引发问题的Collection或对象,提供使用该对象的应用全堆栈轨迹(Full StackTrace)信息,所以对系统无负荷地接近问题原因。

Jennifer对内存漏损(Leakage)监测

Java中是利用GC自动管理内存,说是不存在内存漏损,但事实上内存漏损问题已经成为许多故障的原因。其原因是在程序中抓住实际不使用的对象的reference时,这个对象既无法被GC所处理,而且在程序内页无法使用,成为了“垃圾”占据着内存(准确的说是地址空间)。就这样垃圾内存持续增加必然导致有着指定大小的堆内存的空闲空间减少,最终引发内存不足,可能导致发生服务停止的故障。

如下图所示,JENNIFER在内存不足发生之前,长时间维持高的堆内存占有情况时,通过警报向管理人员通报,以此提供进行事先措施的时间余量。

 
关于Jennifer软件可咨询,北京铸锐数码科技 010-62139280