15

最近立ち上げたホワイト ラベル (同じサイトの複数のバージョン) のサイトがあります。まだ大量のトラフィックはありません - 主にボットですが、おそらく 1 日あたり 800 ユーザーです。これは、Azure 以外のサーバーに配置された管理パネルに加えて、Azure データベースを使用して Azure でホストされます。両方のサイトが同じ Azure データベースに接続します。データを処理するために実行されているワーカー ロールもいくつかあります。99% の時間は何もしていませんが、定期的にチェックしています。

私は常に数秒間続くランダムなエラーを経験してきましたが、次のように再び問題ありません。

サーバーから結果を受信中にトランスポート レベルのエラーが発生しました。(プロバイダー: TCP プロバイダー、エラー: 0 - 既存の接続がリモート ホストによって強制的に閉じられました。)

しかし、今朝はもっと深刻な問題がありました。それは次のように始まりました:

System.ComponentModel.Win32Exception: 既存の接続がリモート ホストによって強制的に閉じられました

これは、ボット (Google、Baidu、AhrefsBot、Wiseguys.nl) がサイトをインデックスしているときに発生しました。これらから 1 つ以上のエラーが発生しました。それから私は得ました:

System.Data.SqlClient.SqlException: サービスで要求の処理中にエラーが発生しました。もう一度やり直してください。エラー コード 40143。現在のコマンドで重大なエラーが発生しました。結果がある場合は、破棄する必要があります。

これは ExecuteReader フェーズの間でした。

10 分後、本当の問題が発生しました。つまり、誰も管理インターフェイスにログインできませんでしたが、Azure でホストされている Web サイトをテストしたところ、ボットはまだエラーを表示していましたが、問題はないように見えました。問題は次のとおりです。

System.ComponentModel.Win32Exception: 待機操作がタイムアウトしました

これは、約 1 時間、ランダムな接続のオンとオフが繰り返されました。次に、別の問題に遭遇しました。

System.Data.SqlClient.SqlException: リソース ID: 1. データベースの要求制限は 180 で、到達しました。サポートについては、 「http://go.microsoft.com/fwlink/?LinkId=267637」を参照してください。

これは、過去 1 時間にオンとオフで発生しました。主にワーカー ロールで発生しました。次に、これらすべてのリクエストを占有しているものを見つけようとしたところ、次のコマンドが見つかりました。

SELECT * FROM sys.dm_exec_requests

何度も実行しているときに、1 つまたは 2 つのリクエストしか返されませんでした。

私の質問は次のとおりです。1) Azure でホストされているサーバーから比較的定期的に (1 日に 1 回、おそらく 2 回) 一時的に切断される経験をした人はいますか? 2) 上記のイベントのリストは特定の問題を示していますか? これはすべて、多数の管理者が一度にログインしたときに発生した可能性があります。3) 180 制限メッセージを受け取ったときに、データベースへのリクエスト数をより適切にデバッグするにはどうすればよいですか?

前もって感謝します。

4

3 に答える 3

0

この dm_exec_requests DMV を見ると、正しい軌道に乗っているように思えます。すでにご覧になっていると思いますが、180 のスロットル制限については、ここに文書化され、その主な理由の概要が説明されているかなり詳細な情報があります。

興味がある場合は、Cotegaというサービスがあり、両方の質問に役立つ可能性があります。1 つ目は、データベースに対してすべての主要なDMV を実行して、データベースの分析に役立つように何が起こっているかを表示できることです。また、スロットル制限に近づき始めたときに通知 (電子メール、SMS) を送信することもできます。

于 2013-09-06T23:43:14.607 に答える