2017-02-22 17 views
2

WebJobでメモリリークが発生している可能性がありますが、私が実際に行うことを明確にする方法はわかりません。私はKudu管理コンソールの/ processExplorerに行き、プロファイルを開始して結果をダウンロードすることで情報を見つけることができると思う。しかし、私はこれが行くルートかどうか、私はそれを取得した後、私はファイルと一緒にすべきことは完全にはわかりません。Azure WebJobでメモリリークを診断する方法

何か提案がありがとうございます。

答えて

2

私はあなたが.diagsessionファイルを取得した後、あなたがそれを開くことができ、クーズー管理コンソールに/ processExplorerに行くことによって情報を見つけるプロファイルを開始し、その結果に

をダウンロードすることができますVisual Studio。 CPU使用率の傾向が表示されますが、このファイルにはメモリデータは含まれていません。メモリリークの有無を簡単に識別するために、以下の手順を参考にしてください。

  1. kuduでProcess Explorerを手動でタイムリーにリフレッシュします(30秒に1回など)。
  2. プロセスエクスプローラを更新した後、メモリリークの診断に使用するプライベートメモリと仮想メモリを記録する必要があります。プロセス名の後にある[プロパティ]ボタンをクリックすると、現在のプロセスのプライベートメモリと仮想メモリが表示されます。
  3. 十分なデータの記録が完了したら、仮想メモリとプライベートメモリの成長速度を比較する必要があります。仮想メモリとプライベートメモリの両方が高速に増加するか、または仮想メモリがプライベートメモリよりも高速に増加すると、メモリリークが発生していることを意味します。

メモリリークの詳細が必要な場合は、プロセスプロパティページからメモリダンプファイルをダウンロードし、WinDbgを使用してメモリダンプファイルの詳細情報を表示できます。 Azure Webサイトの診断サービスを使用してダンプファイルをオンラインで分析することもできます。それを使用する方法の詳細については。下記のリンクは参考になります。

DaaS – Diagnostics as a Service for Azure Web Sites

+0

私はリソースを占有して孤立したスレッドの束を持っていたことを確認するためにDAASを使用することができました。 DaaSを指摘してくれてありがとう。 –

+0

@RobReaganどうやってアズールが孤立した糸を捨てたのか確認しましたか? – zgirod

+0

@zgirod、私たちの問題は、リクエストごとにWebJobからHubへの新しい接続を作成していたことでした。 SignalR 2.2.0を使用すると、接続とスレッドが孤立する問題が発生しました。継続的なWebJobでロジックを変更し、一度プロキシ接続を確立した後、その接続を再利用してHubと話をしました。それが私たちの問題を解決しました。 –

関連する問題