Board logo

标题: Memory Analyzer(及其 IBM Extensions 插件)为何不再只用于内存泄露(3) [打印本页]

作者: look_w    时间: 2018-8-13 21:15     标题: Memory Analyzer(及其 IBM Extensions 插件)为何不再只用于内存泄露(3)

在 Memory Analyzer 中使用 IBM Extensions“总是启动” 的扩展有些 IBM 扩展 “总是启动”,即各种视图显示关于一个与其地址相邻的对象的额外信息。例如,在图 4 显示的用例中,选中的对象现在描述 MemoryStore 中有多少会话,以及那些会话针对哪些 web 应用程序。IBM Extensions 添加会话的数量和应用程序名称,以便立即描述内存使用的起源。
图 4. Memory Analyzer 的 Overview 选项卡显示一个大对象在 Dominator 树视图(共同保留整个 Java 堆的一列对象),类加载器分组使用它加载的类的描述替代类加载器的名称。例如,图 5 中选中的类加载器显示它是 PlantsByWebSphere web 应用程序的类加载器。
图 5. 按照 IBM 产品扩展的类加载器分组的 Dominator Tree下拉菜单扩展有几个 IBM 扩展是可执行查询,可以在 Query Browser 下拉菜单中找到。IBM Extensions 位于 IBM Extensions 类别下,细分为 3 个子类别:Java SE Runtime、CICS Transaction Gateway 和 WebSphere Application Server(见图 6)。
图 6. Open Query Browser Button 展开一个通往 IBM 产品扩展查询的上下文菜单目前可用以下查询:
扩展实际应用WAS Overview 查询WAS Overview 查询是一个简单查询,显示当前运行的 WebSphere Application Server 的版本和补丁级别,服务器、节点和单元名称,推断的进程启动时间,以及所有应用程序及其运行状态的列表(见图 7)。这个查询可以通过导航到 Open Query Browser > IBM Extensions >                    WebSphere Application Server > WAS Overview 来访问。
图 7. WebSphere Application Server Overview 查询HTTP Sessions 查询一类常见问题与应用程序的 HTTP 会话使用相关。除 OutOfMemoryErrors 外,其他问题包括发现会话内容、超时值、会话标识符以及会话所属的应用程序。还有许多实现细节使得发现会话及其值并不容易。这些细节包括不同的产品版本的类名不同,一个会话有两个映射(一个映射用于持久会话,另一个映射用于非持久会话,这两个映射可能在单个会话中同时保持活动状态)。
HTTP Sessions 查询将所有这些信息都提取到一个树视图中(见图 8)。这个查询可以通过 Open Query Browser > IBM                Extensions > WebSphere Application Server > HTTP Sessions 访问。图 8 中加点的行下面的列是上面的列的继续。
图 8. WebSphere Application Server HTTP Sessions 查询每个会话对象都可以扩展,显示其 “键/值” 对。在图 9 中,会话中有 5 个属性。每个键都采用 sessN 形式,值是一个自定义对象。如果值不是 String,则可以展开行显示对象。
图 9. 带有一个已展开会话及其属性的 WebSphere Application Server HTTP Sessions 查询这个插件还可用于 PHD 堆转储,但大多数元数据都会缺失,只显示属性的保留堆大小。
Application Class Loader Leaks                查询当应用程序重启但它们的类加载器没有清理时,将发生应用程序类加载器泄露。这种情况通常由一个应用程序引用引起,该引用从服务器中的其他地方(比如 ThreadLocals)引用应用程序。如果存在应用程序类加载泄露且应用程序重启次数达到一定数量,就可能会导致 Java 或原生 OutOfMemoryErrors。
Application ClassLoader Leaks 查询将找到所有停止的应用程序类加载器,询问可能导致类加载器不适合垃圾收集的可疑对象。这个插件处理 PHD 堆转储的效果同样好(见图 10)。可以通过 Open Query Browser                > IBM Extensions > WebSphere Application Server > Application ClassLoader Leaks 访问此插件。
图 19. WebSphere Application Server Application ClassLoader Leaks 查询




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0