2017-11-13 4 views
1

WSO2 DAS 3.1.0を使用してWSO2 API-Managerからイベントを受信し、データベースに送信します。WSO2受信イベントのパフォーマンスが悪いですか?

DASに4〜5時間かけて70〜100イベント/秒を送信すると、パフォーマンスが徐々に悪化し、「レージング」が発生します。最初に、結果のイベントをデータベースにプッシュする問題を疑いました(イベントレシーバ、実行プラン(イベント/秒を要約する)、データベースのパブリッシャを持っています)。しかし、問題が発生しても、データベースには負荷についても問題はありません。

たとえば、次のような問題を特定します。 (私たちの実行計画で処理する前に)着信イベントの受信者からファイルにイベントパブリッシャーを追加しました.DASのパフォーマンスが低下した場合、数秒間、このパブリッシャーの出力もありません。したがって、問題は受信イベントを処理することです(受信イベントの処理に背圧がかからないように、イベントをデータベースにプッシュする間にキューを追加しました)。

しかし、この現象が発生すると(DASの受信イベントを処理するパフォーマンスが低下する)、サーバー全体を再起動することから離れてしまう方法はありません(いくつか時間)。たとえ数日間サーバーにイベントを送信しなくても、サーバーに1-2つのイベントを送信し始めると、すべてのイベントを処理するまでに数秒かかります(したがって、到着するイベントの直後に「遅れます」)。これは、DASを再起動するまで、着信イベントを処理する際にパフォーマンスが指数関数的に遅くなるかのようです。

この現象が発生しないように変更する場所については、潜在的な手がかりがあります(内部イベントのパージも効果がありません)。

+0

https://wso2.org/jira/browse/DAS-527でこれまで同様の問題が報告され、修正されています。 https://wso2.com/updates/wumのWSO2アップデートマネージャを使用して製品をアップデートし、問題が修正されているかどうか確認してください –

答えて

0

多くのデバッグの後、最終的にこれが原因であることがわかりました。

我々のSiddhiステートメントでは、動的に変更するタイムスタンプで 'group by'を使用していますが、このバグで説明されているように非常に効率が悪く扱われています。https://github.com/wso2/siddhi/issues/431

指定されたクラスにパッチを当てると、問題は消えてしまいました(しかし、ダイナミックな「グループ化」情報をリリースしないため、現在OOMを取得するバグがあります)。

関連する問題