java - 如何分析 Snap.*trc 文件?
问题描述
我现在正在研究 WebSphere 上的 OOM,我有一个文件Snap.*.trc
. 我引用了另一个 SO 问题的评论,如何分析 Websphere core*.dmp 文件和 Snap*.trc 文件?,我创建了Snap.*.trc.fmt
文件。
但是,我无法理解这个文件是什么。比如 GC log( native_stderr.log
),使用 可以看到垃圾收集器在做什么IBM Pattern Modeling and Analysis Tool(PMAT)
,但是好像没有分析Snap.*.trc
文件的工具。有什么工具可以做到这一点吗?
解决方案
通常,Snap*trc
文件由支持人员使用,而不是由客户使用。它们包含转储时内存中保存的任何跟踪点数据。它们在某些 OOM 情况下很有用,例如检查是否因耗尽本机内存而发生 OOM。看来您已经弄清楚了如何格式化它们,并且生成的*trc.fmt
文本文件只是一组跟踪点,因此它与分析任何跟踪相同(这通常意味着您需要了解代码,因此Snap*trc
文件倾向于仅限于支持使用)。您可以在此处找到有关 Snap 文件的更多信息:https ://publib.boulder.ibm.com/httpserv/cookbook/Troubleshooting-Troubleshooting_Java-Troubleshooting_IBM_Java.html#Troubleshooting-Troubleshooting_IBM_Java-Snap_Traces
话虽如此,一般来说,这是我分析OOM的方式:
- 查看文件
1TISIGINFO
中的。javacore*txt
这将告诉您它是 Java OOM 还是本机 OOM。 - 如果是 Java OOM,则将
core*dmp
文件加载到IBM Memory Analyzer Tool中。请注意,您引用的另一个问题说您必须jextract
在core*dmp
文件上运行才能对其进行分析,而最新版本的 Java 不再是这种情况 - 只需将core*dmp
文件加载到 IBM MAT 工具中即可。 - 如果它是原生 OOM,那么情况会变得更加复杂,因此您可以在此处发回详细信息。
与往常一样,您也可以向 IBM 提出支持案例,他们可以帮助您进行一些分析。
推荐阅读
- azure-devops - 有没有办法允许用户运行 Azure DevOps 管道,但不允许他们进行编辑?
- visual-studio-code - VScode 未编译为 .bin 文件
- java - SignalR 使用了 30G 的用户 CelluarData 和 Wifi ,如何减少?
- jsp - [/WEB-INF/jsp/report/TestArchive.jsp] 中 [c] 的来自 TagLibraryValidator 的验证错误消息
- ios - 在 didFinishPicking 方法中获取大尺寸图像
- list - Python程序从日期列表中提取年份部分
- python - 如何使用 oauth2 使用 dbm api python 自动化 dv360 报告?
- python - 如何根据前序、中序和后序遍历方法输入节点 P 并且输出应该是 P 之后的节点?
- java - 我们如何才能仅沿曲线而不是包含区域显示曲线的工具提示(使用 piccolo2d 绘制)?
- mongodb - 无论如何,mongodb每个月都会自动在linux中创建一个新表吗?