2017-09-19 17 views
0

私はAzure Redisインスタンスを呼び出すAsp.Net Azure Webアプリケーションを持っています。私はレディスのタ​​イムアウトを続けています。私が得るメッセージは以下の通りです。Azure Redisタイムアウト

inst: 1, mgr: Inactive, err: never, queue: 120, qu: 0, qs: 120, qc: 0, wr: 0, wq: 0, in: 65536, ar: 0, clientName: RD0004FFA37AA4, serverEndpoint: Unspecified/server.redis.cache.windows.net:6380, keyHashSlot: 11524, IOCP: (Busy=0,Free=1000,Min=4,Max=1000), WORKER: (Busy=21,Free=8170,Min=200,Max=8191) 

appとredisの両方が同じ地域(東米2)にあります。 「中:65536」を有する

答えて

0

あなたのエラーメッセージには、クライアントのカーネルソケットに座っ65536のバイトがあることを示しているが、処理されるが、まだクライアントアプリケーションによって解析されていない準備ができて受信バッファ。

私は2例でこれを見てきました:

  1. ThreadPoolの設定は、(as described here)を調整する必要があります。ただし、上記で提供されたエラーメッセージは、これが問題であると表示しません。他のケースではこれが起こっていないことを確認するために、より多くのエラーのサンプリングをチェックしてください。
  2. クライアント側CPUが高温になっています。 CPUが高い場合、ソケット受信イベントを処理するコードは適時にトリガされないため、処理コードはカーネルバッファ内の待機データを解析しません。クライアントCPUの履歴を確認してください。 CPUは定期的なサイクルでキャプチャされるため、慎重に注意してください - CPUの短命スパイクは、晴れたメトリックには表示されないかもしれません(私は20秒ごとに考えます)。これらのサンプルの間にスパイクが発生し、短い場合、メトリクス収集システムに気づかれないことがあります。

その他の共通client-side causes are documented hereおよびcommon server-side errors are documented here

+0

ドキュメントに基づいて作業席のトレッドを増やしたので問題はありません。あなたが言ったようにCPUかもしれませんし、Azureのメトリックには表示されません。私はそこに何かを見つけることができるかどうかを見ます。 – Bipindas

+0

タイムアウト時にCPU使用率を取得するための確実な方法の1つは、プロセスのダンプをキャプチャすることです。 – JonCole

+0

これはAzureのアプリサービスなので、どうすればいいのか分かりません。今のところ、大規模なコレクションを格納するためにRedisを使用していません。 – Bipindas

関連する問題