2012-06-21 13 views
5

Windows Azure & SQL Azureで実行される5つのオンラインオークションシステムがあります。各システムは、単一のWebワーカーと1つ以上のWebロールで構成されています。各システムは、ASP.NET MVC 3とEntity Framework、リポジトリパターンとStructureMapを使用しています。SQL Azure:より断続的なタイムアウト

ワーカーロールはハウスキーピングを担当し、2つのプロセスグループを実行します。 1つのグループは10秒ごとに実行され、1つのグループは毎秒実行されます。各プロセスは、おそらくデータベースクエリまたはストアドプロシージャを実行します。これらはQuartz.netでスケジュールされています

Webロールは、パブリックインターフェイスとバックオフィスに使用されます。他の基本的な機能の中でも、これらの両方は、開いたときにストアドプロシージャの読み取り専用クエリを実行するコントローラメソッドを繰り返し呼び出す画面を提供します。繰り返しの頻度は、1クライアントあたり約2〜3秒です。典型的なユースケースは、5つのバックオフィスウィンドウが開いていて、25のエンドユーザーウィンドウが開いていることです。

長い間、断続的なSQLタイムアウトエラーが発生しています。最も一般的なもののうち3つは、次のとおりです。

System.Data.SqlClient.SqlException: A transport-level error has occurred when receiving results from the server. (provider: TCP Provider, error: 0 - An existing connection was forcibly closed by the remote host.)

System.Data.SqlClient.SqlException: A transport-level error has occurred when receiving results from the server. (provider: TCP Provider, error: 0 - The semaphore timeout period has expired.)

System.Data.SqlClient.SqlException: Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.

のみ予測可能なシナリオは、特定のコントローラのオークション中にある - > SPROCが(負荷におそらくは)イベント中にタイムアウトを開始します。他のすべての時間は、エラーは完全にランダムであり、ユーザの非アクティブ期間中であっても、シングル、2、および3の等で来るように見える。たとえば、システムはエラーなしで18時間経過し、さまざまなハウスキーピング方法からの5〜10回のエラー、またはユーザーがログオンしてアカウントを表示した可能性があります。

その他の情報:

私は地元のSSMSとAzureのWebベースのクエリツールの両方を使用してSQL Azureの上の影響を受けたクエリ/ストアドプロシージャを実行しようとした - すべては、すぐに1秒、最大を実行するように見えます。 SQLクエリーパフォーマンスエキスパートでも、他の種類のエキスパートでもないにもかかわらず、疑わしいものは何も表示されないクエリプランJ

Azure SQLの一時的なフォルト処理ブロックにすべての影響範囲をラップしました。ここではhttp://social.msdn.microsoft.com/Forums/en-US/ssdsgetstarted/thread/7a50985d-92c2-472f-9464-a6591efec4b3で説明したように、タイムアウトは発生しません。「Valery M」によれば、これは正当な理由によるものです。

asp.netのメンバーシップ情報はデータベースに保存されていますが、データベースにセッション情報は保存されていません。

5つのデータベースをすべてホストする1つの「SQL Azureサーバーインスタンス」を使用します。ステージング用に2つ、プロダクション用に3つのデータベースが使用されます。すべての5つのシステムは一般に、同時にアクティブになっていますが、常に複数のシステムがライブロード使用状態になることはありません。 すべてのWebロール、ワーカーロール、およびSQL Azureサーバーは、同じAzure地理領域に存在します。

私たちはどこを見ているべきですか?各システムに独自のSQL Azureサーバーを提供するのに役立つでしょうか? ...ソリューション自体が失敗する - マイクロソフトにサポートチケットを開いて、アプリケーションで何が起きているのかを見てみることができますか?これについてはどうすればよいですか?

ありがとうございます。

宜蘭

+0

宜蘭を、私は今のうちアプリケーションにエラーの同じタイプを経験しています。何をやったの?ところで、その一時的なエラー投稿で、Valery Mは、実行計画とデータベースのインデックスがうまくいく場合、あなたが解決できないタイムアウトの少なくともいくつかのためにパターンを使用することはおそらくOKですと述べています。 –

答えて

5

SQL Azureでは、マルチテナントシステムであり、あなたは他のテナントからの使用上の潜在的に苦しんですることができます。マイクロソフトでは、他のテナントを抑制してOK仕事をしていますが、しばらくしてSQL Azureクエリがタイムアウトします。このページをご覧マイクロソフトでサポートを開くには

https://support.microsoft.com/oas/default.aspx?gprid=14919&st=1&wfxredirect=1&sd=gn

関連する問題