私は数ヶ月間、開発環境でService Brokerを実行していましたが、十分なパフォーマンスが得られました。劣悪なSql Server Service Brokerフォワーディングパフォーマンスの診断
フォアリングインスタンスが含まれている本番環境のカットダウンレプリカでも実行されていましたが、今日では第1回目にはひどい結果をもたらしました。私は何を見ているのかを理解しようとしていますが、ちょっと苦労していますので、誰かが助けることができるかどうかを見極めることを考えました。
最初に、というメッセージは、最初から最後まで転送者によって配信されます。です。しかし、数千のメッセージをプッシュすると、20〜100のバッチが送信され、それに続いて1〜2分の遅延が見られました。メッセージは最終的に正常に処理されます。
Store(最初の送信者)のキューを見ると、転送されるのを待っていて何千ものメッセージが流出しています。
セキュリティ設定のような行く:転送インスタンス上
いくつかの例:
Store database -> Certificate -> Forwarding instance -> Windows Security -> Central database
私はプロファイラをオンにすると、私はたくさんのエラーを見てい
7 - Send IO Error (10054(failed to retrieve text for this error. Reason: 15105))
Forwarded Message Dropped (The forwarded message has been dropped because a transport send error occurred when sending the message. Check previous events for the error.)
そして、私の「オン中央のターゲットインスタンス:
A corrupted message has been received. The binary message preamble is malformed.
Broker message undeliverable This message was dropped because it could not be dispatched on time. State: 2
誰かが私が作ることができるいくつかの小切手、または私が逃したことが明らかな何かに私を向けることによって助けることができます。私は何か間違っているが、何が見えないのか知っている。
編集 - 2011年12月14日 - 詳細: これについての詳細は、メッセージ転送の例を数式から外し、すぐに大幅な改善が見られました.2000メッセージは数秒で配信されました。
アーキテクチャではトランスポートセキュリティが使用されているため、トランスポートセキュリティ/フォワーディングがパフォーマンスに悪影響を及ぼす可能性があることを読んでいるため、ダイアログセキュリティに切り替えようとしています。 Dialogのセキュリティは、フォワーディングインスタンスによって復号化される必要があるものを何とか最適化し、パフォーマンスを向上させることを望んでいます。
最初の物語私は、ボトルネックが発生しているかどうかを確認するために、トランスポート層の暗号化を(イニシエータとフォワーダの間で)オフにしたいと考えています。これが通信の大きなオーバーヘッドを引き起こす可能性がありますか、または1つの転送インスタンスで大きなボトルネックが発生しないようにすることは可能でしょうか?
Hi Graeme、Remus Rusanoのブログには、優れたサービスブローカー情報が含まれています(まだ見ていない場合):http://rusanu.com/blog/ –
サービスブローカーのパフォーマンスカウンタの値は何ですか? :http://msdn.microsoft.com/en-us/library/ms166069.aspx –