1

有没有一种方法/工具来收集 SAP 功能模块执行的详细 Stacktrace?

我们在应用程序中看到间歇性的性能问题。它正在调用 SAP FM(使用 PyRFC)。这个 FM 本身执行许多事情——逻辑、进一步的调用等。它还应用了多线程处理。它用于获取多个项目的价格。对于每次调用,它按项目拆分调用,并为每个项目在并行线程中执行,等待所有线程完成,合并所有获取的价格并返回结果。

这些呼叫中非常少的百分比比平时花费的时间要长得多(99% 的呼叫不到 2 秒,而慢速呼叫超过 10 秒)

在不同层启用跟踪后,我们看到调用按预期在多个 SAP 应用程序服务器之间拆分。对于突然的缓慢调用,其中一个应用服务器最终会占用大量时间,从而使整体执行速度变慢。

我们仔细验证了这不是特定应用服务器的问题。它是在许多应用服务器上随机发生的。我们无法确定是什么情况导致了这种情况。从可用的应用服务器指标(CPU、内存、I/O 等)来看,在同一时间跨度内都处于非常健康的范围内。

我有两个问题是 -

  1. 有没有办法在 SAP 应用服务器级别启用详细信息跟踪;揭示在这些缓慢执行过程中特定应用服务器上到底发生了什么的详细跟踪?例如,其中一个慢速调用耗时 7.8 秒。但是我们没有更多关于这 7.8 秒究竟是如何度过的。什么都进去了。
    我正在寻找可以用 JVM 应用程序完成的类似于堆栈跟踪和分析的东西。如果没有这 7.8 秒的下一级破解,就像在黑暗中扔石头,希望它会撞到某个地方。

  2. 有没有人遇到过类似的问题?如果是,那么在这种情况下,根本原因是什么?
    为避免混淆,不要寻找神奇的解决方案。对于此类问题和可用的高级详细信息,无法提供解决方案。因此,如果您过去曾看到过类似的问题以及当时的原因,我正在寻找见解,以便我们可以检查相同的内容以确保确定。或者,如果您可以提出任何其他想法来探索根本原因分析,那也很有帮助。

问候。S.达斯

4

1 回答 1

0

您在这里有几个选择:

  1. 通过 SE37 的传统方式堆栈跟踪或调用图

在此处输入图像描述

  1. FM 构建块的SAT 运行时分析

在此处输入图像描述

  1. SAP ST12 Single transaction analysis更全面和扩展的工具

在此处输入图像描述

可以运行以跟踪外部调用!您的首选工具!

  1. SAP UPL 使用和过程记录

跟踪工具,可将您的 FM 分解为子程序甚至逻辑片段(IF、LOOP、WHILE、CASE)以及彼此之间的匹配情况

在此处输入图像描述 在交易中激活/SDF/UPL_CONTROL

自 SAP Netweaver 7.01 SP10 或 7.02 SP9 + 内核 720 补丁 94 或 7.31 SP3 和 7.40 起可用

需要 ST-PI 2008_1_x SP4

  1. ABAP SCMON,UPL的继任者。允许与 UPL 相同,另外
  • 捕获任何动态调用的 ABAP 例程
  • 支持所有 ABAP 过程类型直至子例程
  • 通过记录相应的根来记录调用堆栈信息

在此处输入图像描述

在交易中激活SCMON/SDF/SCMON_ACTIVATE

从 NW 7.22 PL123 或 NW 7.42 PL310 或 NW 7.45+ 或 NW 7.50+ 开始提供

需要 ST-PI 2008_1 SP14 或 ST-PI 740 SP4

  1. SAP CCLM(自定义代码生命周期管理)是一个更全面的工具,包含45的所有功能以及运行时性能分析。

不过,它需要解决方案管理器 7.2。

以下是它们如何通过功能相互站立的概述

在此处输入图像描述

我想指出选项45不是运行时分析,因此它们不能说明模块在每个变体上的行为,即在某些测试数据上,但它们允许了解结构和可能的瓶颈。

于 2021-11-26T12:09:43.127 回答