2011-10-24 11 views
0

ソースからハンドラープロセスに直接送信されるイベントを200 eps(イベント/秒)で処理するイベント処理システムがあります。キューとメッセージ送信はトランザクションです。イベントジェネレータとハンドラプロセスの間にNSBディストリビュータを追加すると、このレートが200 epsから70 epsに減少します。ディスク使用量とディストリビューターボックスのCPUもかなり高くなります。NServiceBus:ディストリビューターの処理ボトルネックを防ぐ方法(レート65%削減)

NServiceBus、バージョン2.6.0.1505の商用ビルドで見られます。

誰でもこの動作を見たり、アドバイスをしていますか?

答えて

0

あなたがプレイできることは、MSDTCの場所です。従業員にディストリビュータと同じMSDTCを使用させることで、トランザクションのレベルを下げ、コミットを高速化できます。これを行うと、MSDTCをクラスタ化して障害から保護することをお勧めします。

DBで操作していると仮定すると、異なるデータセットで作業するようにデータベースを分割することができます。 DBを作業者の近くに移動することもできます(同じマシンに)。

DBプロバイダとMSMQの設定もチェックしますが、タイムアウトなどの点で調整が必要な点がいくつかあります。特定の設定を適用するときはトレードオフがありますが、スループットを最速にしたいと思うように思えます。

他のシステムレベルのものもたくさんあります。ネットワーク(ディスク/ RAM)などのすべての項目を処理していると仮定します。

+0

ありがとうございました。私たちは現時点で純粋に記憶にあり、MSDTCは同じ場所にあります。私たちが見ている問題は、より良いハードディスクI/Oによって解決されるかもしれないと思います。標準的な箱の70 epsはまだ低い感じです。 –

関連する問題