如何分析Snap.*trc文件?
How to analyze Snap.*trc file?
我现在正在研究 WebSphere 上的 OOM,我得到了一个文件 Snap.*.trc
。我引用了另一个 SO 问题的评论 How to analyse Websphere core*.dmp file and Snap*.trc files? ,并创建了 Snap.*.trc.fmt
文件。
但是,我看不懂这个文件是什么。比如GC日志(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 的:
- 查看
javacore*txt
文件中的 1TISIGINFO
。这将告诉您它是 Java OOM 还是本机 OOM。
- 如果是 Java OOM,则将
core*dmp
文件加载到 IBM Memory Analyzer Tool。请注意,您引用的另一个问题说您必须 运行 jextract
在 core*dmp
文件上进行分析,而最近版本的 Java 不再是这种情况 -只需将 core*dmp
文件加载到 IBM MAT 工具中。
- 如果它是本机 OOM,那么情况会变得更加复杂,因此您可以 post 返回此处提供详细信息。
与往常一样,您也可以向 IBM 提交支持案例,他们可以帮助您进行部分分析。
您可以随时使用 GMCV Health Center. Download and install it via eclipse market place. It is able to read trc
files. Also see the user guide here。它能够为您提供有关以下内容的信息:
- 类: 关于类 正在加载的信息
- CPU:应用程序及其所在系统的处理器使用情况 运行
- 环境:被监控的配置和系统的详细信息
申请
- 垃圾收集:有关 Java 堆和暂停时间的信息
- I/O:有关I/O 发生的活动的信息
- 锁定:有关膨胀锁争用的信息
- 方法跟踪:有关随时间推移使用方法的信息
- 本机内存:有关本机内存使用情况的信息
- 分析:提供 Java 方法的采样分析,包括调用路径
- Threads:有关受监视 JVM 的活动线程的信息
我现在正在研究 WebSphere 上的 OOM,我得到了一个文件 Snap.*.trc
。我引用了另一个 SO 问题的评论 How to analyse Websphere core*.dmp file and Snap*.trc files? ,并创建了 Snap.*.trc.fmt
文件。
但是,我看不懂这个文件是什么。比如GC日志(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 的:
- 查看
javacore*txt
文件中的1TISIGINFO
。这将告诉您它是 Java OOM 还是本机 OOM。 - 如果是 Java OOM,则将
core*dmp
文件加载到 IBM Memory Analyzer Tool。请注意,您引用的另一个问题说您必须 运行jextract
在core*dmp
文件上进行分析,而最近版本的 Java 不再是这种情况 -只需将core*dmp
文件加载到 IBM MAT 工具中。 - 如果它是本机 OOM,那么情况会变得更加复杂,因此您可以 post 返回此处提供详细信息。
与往常一样,您也可以向 IBM 提交支持案例,他们可以帮助您进行部分分析。
您可以随时使用 GMCV Health Center. Download and install it via eclipse market place. It is able to read trc
files. Also see the user guide here。它能够为您提供有关以下内容的信息:
- 类: 关于类 正在加载的信息
- CPU:应用程序及其所在系统的处理器使用情况 运行
- 环境:被监控的配置和系统的详细信息 申请
- 垃圾收集:有关 Java 堆和暂停时间的信息
- I/O:有关I/O 发生的活动的信息
- 锁定:有关膨胀锁争用的信息
- 方法跟踪:有关随时间推移使用方法的信息
- 本机内存:有关本机内存使用情况的信息
- 分析:提供 Java 方法的采样分析,包括调用路径
- Threads:有关受监视 JVM 的活动线程的信息