SAP Function Module 実行の詳細な Stacktrace を収集する方法/ツールはありますか?
アプリケーションで断続的なパフォーマンスの問題が発生しています。SAP FM を呼び出しています (PyRFC を使用)。この FM 自体は、ロジック、さらなる呼び出しなど、多くのことを実行します。また、マルチスレッド処理を適用しました。複数の商品の価格を取得するためのものです。呼び出しごとに、アイテムごとに呼び出しを分割し、アイテムごとに並列スレッドで実行し、すべてのスレッドが終了するまで待機し、取得したすべての価格を組み合わせて結果を返します。
これらの通話の非常に低い割合は、通常よりもはるかに時間がかかっています (通話の 99% は 2 秒未満ですが、遅い通話は 10 秒を超えています)。
別のレイヤーでトレースを有効にすると、予想どおり、複数の SAP アプリ サーバー間で呼び出しが分割されることがわかります。突然の遅い呼び出しでは、アプリ サーバーの 1 つに膨大な時間がかかり、全体的な実行が遅くなります。
これが特定のアプリ サーバーに問題がないことを慎重に確認しました。多くのアプリサーバーでランダムに発生しています。これを引き起こしている状態を特定することはできません。利用可能なアプリ サーバーのメトリック (CPU、メモリ、I/O など) は、同じ期間内に非常に健全な制限内にあります。
私が持っている2つの質問は -
SAP アプリ サーバー レベルで詳細トレースを有効にする方法はありますか。これらの遅い実行中に特定のアプリサーバーで何が起こっているかの詳細なトレースを明らかにしますか? たとえば、スロー コールの 1 つに 7.8 秒かかりました。しかし、その 7.8 秒がどのくらい正確に費やされたかについては、これ以上の詳細はありません。すべてがそれに入ったこと。
JVM アプリケーションで実行できるスタックトレースとプロファイリングに似たものを探しています。この 7.8 秒の次のレベルの分割がなければ、暗闇の中で石を投げて、どこかに当たることを期待しているようなものです。以前に同様の問題に直面した人はいますか? はいの場合、その場合の根本的な原因は何ですか?
混乱を避けるために、魔法の解決策を探すのではありません。このような問題と利用可能な高レベルの詳細では、解決策を提供することはできません。そのため、過去に同様の問題を見たことがあり、その理由が何であったかについての洞察を探しています。念のため同じことを確認できるようにします。または、根本原因分析のために調査する他のアイデアを提案できる場合は、それも役に立ちます。
よろしく。S.ダス