Widnows Azure SQLデータベースへのワーカー スレッド ガバナンスの導入

Posted: 2012/11/03 カテゴリー: Uncategorized
タグ:, , ,

最近リリースされたサービス アップデート (SU) から、ワーカー スレッドのソフト スロットリングが変更されます。今後数か月で、ソフト スロットリングは、最終的にワーカー スレッド ガバナンスで置き換えられる予定です。その間には、ワーカー スレッドのスロットリング (エラー40501)、またはワーカー スレッド ガバナンス (エラー10928または10929) によるリクエストの失敗が発生することがあります。これらのエラーに対処するように、アプリケーション内のリトライ ロジックを修正すべきです。このトピックに関するより詳しい情報については、「Windows Azure SQL Database Connection Management」(Windows Azure SQLデータベースの接続管理) の「Throttling Limits」(スロットリング上限) (英語 / 日本語 (機械翻訳)) をご覧ください。

我々がすべてのデータセンターに新しいワーカー スレッド ガバナンス メカニズムを展開している間、ワーカー スレッドのスロットリング (40501)、またはワーカー スレッド ガバナンス (新しいエラー コード 10928、10929 – 次の表を参照) のいずれかの理由で、リクエストが失敗することがあります。その間は、スロットリングのエラー コード (40501) とワーカー スレッドに対するガバナンスのエラー コード (10928、10929) の両方に対処するように、アプリケーション内のリトライ ロジックを適切に修正することを推奨します。次の情報を確認し、必要に応じてアプリケーションを修正してください。最終的に、すべてのデータセンターでワーカー スレッド ガバナンスが完全に展開され、ワーカー スレッドのソフト スロットリングが無効化されたら、我々はユーザーの皆さんに通知する予定です。

ワーカー スレッドのハード スロットリング、および他のリソースのスロットリングによる40501エラーは、これまで通り引き続き発生することに注意してください。エラー捕捉ロジックが、これまで通り40501に対処し続けるようにしてください。

  現行のメカニズム: ワーカー スレッド スロットリング 新しいメカニズム: ワーカー スレッド ガバナンス (近日有効化)
説明 マシン上のワーカー スレッドに対するソフト スロットリング上限を超えると、リクエスト/秒が最大のデータベースがスロットルされます。ワーカー数がソフト スロットリング上限以下に減るまで、そのデータベースに対する既存の接続に対して新しいリクエストが発行された場合、その接続は終了され、また、そのデータベースに対する新規接続は拒否されます。

現在、バックエンド マシンあたりのソフト スロットリング上限は、305ワーカー スレッドです。

各データベースは、最大ワーカー スレッド同時実行上限を持ちます。*この上限は最大上限に過ぎず、システムがビジー過ぎる場合には、データベースがこの上限までスレッドを取得できるという保証はないことに注意してください。

次の場合に、既存の接続に対するリクエストが拒否されることがあります。

1. データベースに対する最大ワーカー スレッド同時実行上限に達した場合、エラー コード10928が発生します。

2. システムがビジー過ぎる場合、データベースに対して利用可能なワーカーがずっと少なくても、エラー コード10929が発生する可能性があります。これは、めったに発生しないと想定しています。

返されるエラー 40501 : The service is currently busy. Retry the request after 10 seconds.Incident ID: <ID>. Code: <code>. (現在、サービスはビシーです。10秒後にリクエストをリトライしてください。インシデントID: <ID>。コード: <code>。) 10928 : Resource ID: %d. The %s limit for the database is %d and has been reached. See http://go.microsoft.com/fwlink/?LinkId=267637 for assistance. (リソースID: %d。データベースに対する %s 上限は %d であり、それに達しました。http://go.microsoft.com/fwlink/?LinkId=267637 を参照してください。)

10929 : Resource ID: %d. The %s minimum guarantee is %d, maximum limit is %d and the current usage for the database is %d. However, the server is currently too busy to support requests greater than %d for this database. See http://go.microsoft.com/fwlink/?LinkId=267637 for assistance. Otherwise, please try again later. (リソースID: %d。最小保証は %d、最大上限は %d、データベースでの現在の使用量は %d です。しかし、現在、このデータベースに対して %d 以上のリクエストをサポートするには、サーバーがビジー過ぎます。http://go.microsoft.com/fwlink/?LinkId=267637 を参照してください。あるいは、後で再度トライしてください。)

両エラー メッセージ内のリソースIDは、上限に達したリソースを示しています。ワーカー スレッドに対するリソースIDは「1」です。

推奨 バックオフし、10秒後にリクエストをリトライしてください。ベスト プラクティス (英語 / 日本語 (機械翻訳)) を参照してください。 10928 : 現在、どのユーザー リクエストが実行中か参照するために、dm_exec_requestsを確認してください。

10929 : バックオフし、10秒後にリクエストをリトライしてください。

ベスト プラクティス (英語 / 日本語 (機械翻訳)) を参照してください。

注: ワーカー スレッド メカニズムに対するハード スロットリングは変更されておらず、引き続きユーザー アプリケーションに40501エラーを返します。

関連情報

 

 

 

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中