2011-07-06 12 views
2

まずDB専門家ではないので、私の用語や何かが正しいかどうかは分かりませんが、私と一緒にアイデアを得ることを願っています。SQL Azure - スロットル時の現在の負荷を測定する方法

ソーシャルネットワークに電力を供給するSQL Azureデータベースがあります。非常に単純なものから、距離に基づいて何万人ものユーザーを並べ替える複雑なSELECTSまで、何百万というトランザクションが毎日発生します。

私のユーザー数は毎日増えています。限られたリソースしか持たないSQL Azureが1つあるため、シャーリングを実装したり、SQL Azure Federationを使用してアプリケーションを稼働させ続けることができます。しかし、私の質問は、これをいつ行う必要があるのか​​、どうすればわかりますか?

私はあまりにも多くのリソースを使い始めると、私のクエリが絞られることを知っています...しかし、私はこれが明日起こるか、何年も離れてしまうことが分かっています。

私が許可しているものの80%を叩いていることが分かっている場合、私は解決策の優先順位を決める必要があることを知っていますが、10%これをバックバーナーに置き、後でそれを処理することができます。

これを測定する方法はありませんか?

提案がありますか?

おかげで、

スティーブン

答えて

1

は、私はこれを測定するための任意の作り付けの方法を知っていません。誰かがそれをしたら、私はそれについて聞くことに非常に興味があります。

しかし、Microsoft AppFabric CATベストプラクティスチームの素晴らしいライブラリは、一時的なフォールト処理フレームワークです。 See here

これは、接続を開いてクエリを実行するためのリトライロジックの処理を含む多くのことを行います。あなたはそれを使用することができますが、SQL Azureによって抑制されていたときにはわずかに拡張されてログに記録されます。

これはおそらく、あなたが望むほどの警告を出すことはありませんが、あなたが限界に近づいていることを知るのに役立ちます。このアプローチと何らかのアプリケーション/データベースストレステストを組み合わせた場合、実際の使用状況がそこに到達する前に、今では限界を見つけることができます。

あなたが与えた数字に基づいて、私は間違いなく今シャーディングを見始めるでしょう。

+0

感謝をありがとう、そしていくつかの研究の後、私は間違いなく、現時点ではこれを測定する方法はありません..同意するものとします。あなたがシャーディングを見てみることを勧めたときにあなたは正しかったです...私のデータベースは、私のユーザー番号が増加した週末にスロットルを始めました。私はシャーディングについて学びたいと思っている人のためにエンツォのウェブサイトを推薦します。彼らは素晴らしい白書を持っています。ありがとう。 –

0

スロットル対策のベストプラクティス1)できるだけ短いクエリを実行する2)バッチで作業負荷を実行する3)再試行メカニズムを使用する。

また、私はあなたにいくつかのリソースを指摘したいと思います。 1)のSQL Azureのスロットリングと復号化の理由コード:http://msdn.microsoft.com/en-us/library/ff394106.aspx#throttling 2)http://geekswithblogs.net/hroggero/archive/2011/05/26/cloud-lesson-learned-exponential-backoff.aspx

+0

ねえ。アドバイスをありがとう、私はすでにこれのすべてを行うが、それは誰かのために有用な情報かもしれない。私の質問は、具体的にどのように私のデータベースがクエリによって過負荷になるかを測定する方法を尋ねていました。ある時点では、それが対処できる限界に達する必要があります。ありがとう –

+0

AFAIKそのようなメカニズムは現在存在せず、論理的です。 SQL Azureには多国籍アーキテクチャがあり、共有サーバーの負荷をどのように予測できるのか、どんなテナントが最も多くのリソースを必要とするのか、どのように予測できるのか、複雑です。だから、私たちが今いるのは、予防措置を講じ、ベストプラクティスに従うことだけです。そして、はい、理由コードをデコードし、何が間違っているかを確認してみてください。そして次回は、そういうことが起こらないようにしてください。 HTH –

1

私はあなたが実行していない場合は、下記の記事を読んでお勧めします。 SQL Azureスロットリング条件の根本的な理由に関する興味深い情報が含まれています。スロットルの監視対象を理解することで、データベースが抑制されている理由を把握するのに役立ちます。

Technet Article: SQL Azure Connection Management

方法(免責事項:私はそれを書いた)ことにより、エンツォ・ライブラリを言及していただきありがとうございます!

しかし、理由に応じて、シャーディングがあなたに役立つかもしれないし、役に立たないかもしれないので、スロットリングの理由を理解することが私の最初の勧告となります。たとえば、渋滞の問題が過剰なロックである場合、シャーディングは実際には単一のデータベースへのロックを減らす可能性がありますが、後で戻ってくることがあります。

は エルベ

情報について
関連する問題