2011-01-13 8 views
4

私は数ヶ月間、開発環境で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つの転送インスタンスで大きなボトルネックが発生しないようにすることは可能でしょうか?

+0

Hi Graeme、Remus Rusanoのブログには、優れたサービスブローカー情報が含まれています(まだ見ていない場合):http://rusanu.com/blog/ –

+0

サービスブローカーのパフォーマンスカウンタの値は何ですか? :http://msdn.microsoft.com/en-us/library/ms166069.aspx –

答えて

3

どのようなSQL Serverのバージョンですか?

転送のパフォーマンスに関していくつかの問題が修正されました。最新のSQL Server 2008 R2にアップグレードし、最新の累積的な更新プログラムを展開することをお勧めします。ご使用の環境でアップグレードに問題がある場合は、フォワーダ・インスタンスのみをアップグレードできます。

+0

こんにちはRemus、 It's Sql 2008 R2ではありません。私はSQl 2005と転送パフォーマンスに関する記事を見ました。私は明日R2を試みます。私はSQL 2K8用の最新のSP2を入れて、数秒で200個のメッセージのブロックが届くのを見ています。 明らかにフォワーディングには影響がありますが、合理的に高速なマシンのLANでは、証明書と暗号化を使用して約6kのメッセージを2000通配信しますが(ダイアログセキュリティではありません)、ミックス? ありがとう、 Graeme –

+0

メッセージ本体が二重暗号化されていないため、ダイアログ暗号化(エンドツーエンド)を使用するとトランスポート暗号化(ポイントツーポイント)の作業が節約されます。しかし、転送の問題は暗号化やセキュリティに関連していないため、セキュリティ特性の変更はほとんど影響を与えません。 –

+0

ところで、あなたの1k msgs/secは会話の何回かに流れますか? –

0

これは愚かな提案かもしれませんが、最近あなたはネットワークトポロジーを変更しましたか?ネットワークケーブルを交換したり、スイッチを過熱したりすることがありますか?これが突然起こっていると、それは論理的な変化よりも物理的な変化のように聞こえる。私は両方のマシンでWindowsイベントログをチェックします。

-1

はい、ダイアログセキュリティは、フォワーダと組み合わせて最適なアプローチです。それ以外の場合、オーバーヘッドは膨大になります。

関連する問題