【发布时间】:2022-01-04 06:07:59
【问题描述】:
有没有一种方法/工具可以为 SAP 功能模块执行收集详细的 Stacktrace?
我们发现应用程序中出现间歇性性能问题。它正在调用 SAP FM(使用 PyRFC)。这个 FM 本身执行许多事情——逻辑、进一步的调用等。它还应用了多线程处理。它用于获取多个项目的价格。对于每次调用,它会按项目拆分调用,并为每个项目在并行线程中执行,等待所有线程完成,合并所有获取的价格并返回结果。
这些调用中的极少百分比花费的时间比平时长得多(99% 的调用不到 2 秒,而慢速调用则超过 10 秒)
在不同层启用跟踪后,我们看到调用按预期在多个 SAP 应用服务器之间拆分。对于突然的缓慢调用,其中一个应用服务器最终会占用大量时间,从而导致整体执行速度变慢。
我们仔细验证了这不是特定应用服务器的问题。它是在许多应用服务器上随机发生的。我们无法确定是什么情况导致了这种情况。从可用的应用服务器指标(CPU、内存、I/O 等)来看,在同一时间跨度内都处于非常健康的范围内。
我有两个问题是 -
-
有没有办法在 SAP 应用服务器级别启用详细信息跟踪;揭示在这些缓慢执行过程中特定应用服务器上到底发生了什么的详细跟踪?例如,其中一个慢速调用耗时 7.8 秒。但是我们没有更多关于这 7.8 秒究竟是如何度过的。什么都进去了。
我正在寻找可以用 JVM 应用程序完成的类似于堆栈跟踪和分析的东西。如果没有这 7.8 秒的下一级破解,就像在黑暗中扔石头,希望它会撞到某个地方。 -
以前有没有人遇到过类似的问题?如果是,那么在这种情况下,根本原因是什么?
为避免混淆,不要寻找神奇的解决方案。对于此类问题和可用的高级详细信息,无法提供解决方案。因此,如果您过去曾看到类似的问题以及当时的原因,我正在寻找见解,以便我们可以检查相同的内容以确保确定。或者,如果您可以提出任何其他想法来探索根本原因分析,那也很有帮助。
问候。 S.达斯
【问题讨论】:
-
我不知道
pyRFC,但通常 RFC SDK 提供带有“SAT 跟踪”的单元 RFC(可能在pyRFC或 NW RFC 文档中搜索“sattrace”或“sat_trace”) . SAT 对应于后端的一个工具,它保存所有已执行的 ABAP 程序和持续时间的列表。我不知道如何使用 RFC SDK 检索结果。也就是说,我认为您最好登录 ABAP 后端或数据库,这些后端或数据库已经适应了调整工具,或者请有经验的人为您执行此操作。
标签: abap stack-trace function-module pyrfc