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