IIS サーバー上のプロファイル Web アプリケーション
通常、Web アプリケーションのパフォーマンスの問題を特定するには、アプリケーションがすでにサーバー上で実行されている必要があります。次の表は、アプリケーションのプロファイリングに可能なすべてのオプションをまとめたものです。
長所 | 機能 | |
|---|---|---|
|
| |
|
| |
|
|
ローカルプロファイリング

通常、ローカルプロファイリングは、(開発者の)マシンまたはセキュリティ / パフォーマンス制限を課さないテスト環境でホストされているアプリケーションをプロファイルする必要がある場合に使用されます。
IIS サーバー上にホストされている Web アプリケーションをローカルでプロファイルするには
dotMemory をサーバーにインストールします。
dotMemory をスタンドアロンアプリケーションとして実行する。dotMemory ホームウィンドウが開きます。
実行構成を追加します。プロファイルされたアプリケーションの実行方法を dotMemory に指示する構成:
プロファイルするものを選択する、新しいプロセスの実行で、
実行構成を追加するをクリックします。新規実行構成ウィザードで、IIS を選択し、次へをクリックします。
URL を開くで、プロファイルされたアプリケーションの URL を指定します。これを行わないと、dotMemory は、最初に実行中のアプリケーションプールのプロファイリングを開始します。
オプションで、ブラウザーで、dotMemory が URL を開くために使用するブラウザーを指定します。
オプションで、環境変数を設定するで、必要な環境変数を指定します。各変数は新しい行で指定する必要があります。
保存をクリックします。
作成した実行構成が新しいプロセスの実行リストで選択されていることを確認してください。
プロファイルする方法を選択するで、プロファイリングオプションを指定します。
割り当てデータを収集する : Sampled (オブジェクトサイズの概算データ) と全部 (オブジェクトの数とサイズの正確なデータ) のいずれかを選択します。データ収集の詳細
必要に応じて、他のプロファイリングオプションを指定します。
開始をクリックします。これにより、プロファイリングセッションが開始されます。
アプリケーションで特定のワークフローを実行するか(潜在的なメモリの問題を確認する場合)、特定のメモリの問題を再現します。スナップショットを取得するボタンを使用してメモリスナップショットを収集します。プロファイリングセッションを制御する方法の詳細
データを収集したら、プロファイリングされたアプリケーションを閉じるか、切り離すボタンを使用してプロファイラーをデタッチします。
コマンドラインプロファイラーによるプロファイリング

コマンドラインプロファイラーは、プロファイリングを自動化する必要がある場合 (たとえば、アプリケーションのプロファイリングを時々行う場合など) に最適です。もう 1 つの考えられるシナリオは、自分がサーバーにアクセスできないが、他の人がアクセスできる場合です。そのため、プロファイリングツールとバッチファイルを提供できます。
どのように機能するのでしょうか ? つまり、コマンドラインプロファイラーをサーバーにコピーし、プロファイリング中にアプリを実行するか (アプリプールが再起動されます)、実行中のアプリケーションプール w3wp.exe にツールをアタッチします。その後、特別なコマンドを標準入力に送信してスナップショットを取得できます。
コマンドラインプロファイラーを使用して IIS サーバー上の Web アプリをプロファイリングするには
dotMemory.exe ツールを使用して zip アーカイブをダウンロードし、サーバーにコピー / 解凍します。
現在、メモリスナップショットを取得するための 2 つのオプションがあります。
dotMemory.exe を実行中のアプリケーションプールに接続して即座にスナップショットを取得します。
dotMemory.exe get-snapshot 1234 --save-to-dir=C:\Snapshots1234は、対応する w3wp.exe プロセスのプロセス ID です。
ヒント : ID を取得するには、IIS マネージャーで必要なサーバーを開きます。ワーカープロセスページで、実行中のワーカーとその ID のリストが表示されます。プロファイリングでアプリケーションプールを実行します(プールがすでに実行されている場合は再起動されます)。
dotMemory.exe start-iis --trigger-timer=30s --open-url=localhost/myapp --use-browser=Chromeここで、
--open-url=localhost/myappはアプリケーションの URL です。アプリケーションプールを実行することを選択した場合、即座にスナップショットを取得することはできません。代わりに、:条件ごとにスナップショットを取得する: たとえば、
--trigger-timer=30sが指定されている場合、スナップショットは 30 秒ごとに取得されますstdin にコマンドを送信してスナップショットを取得する:
##dotMemory["get-snapshot"]プロセス終了時にスナップショットを取得します (たとえば、IIS マネージャーのリサイクルアプリプール)
dotMemory コマンドラインプロファイラーの操作の詳細については、「dotMemory コマンドラインプロファイラーを使用する」を参照してください。
作成されたスナップショットを dotMemory がインストールされているコンピューターにコピーして、スナップショットを分析します。
メモリダンプ

何らかの理由でサードパーティのツールをサーバー上でコピーして実行することがまったく不可能な場合はどうなりますか? あなたの最後の手段はメモリダンプです。2 つの最も人気のあるタスクマネージャー(オペレーティングシステムに付属)とプロセスエクスプローラーの 2 つのツールを使用して、さまざまなツールを利用できます。
メモリダンプを使用して IIS サーバー上の Web アプリケーションをプロファイルするには
サーバーで、タスクマネージャーまたは Process Explorer ツールを使用してメモリダンプを取ります。タスクマネージャーで 32 ビットアプリケーションのダンプを作成するときは、C:\Windows\SysWOW64\taskmgr.exe にあるツールの 32 ビットバージョンを必ず使用してください。

作成したスナップショットを dotMemory がインストールされているコンピューターにコピーし、インポートダンプコマンドを使用して開きます。

関連ページ:
dotMemory を実行
dotMemory はいくつかの方法で起動できます。スタンドアロン dotMemory は、オペレーティングシステムにインストールされたスタンドアロンアプリケーションとして実行します。JetBrains Toolbox を使用して dotMemory をインストールして起動することを強くお勧めします。アプリケーションのソースコードがない場合、またはプロファイリングを実行するために IDE を起動したくない場合に推奨されます。詳細 JetBrains RiderJetBrains Rider で開かれた...
プロファイリングセッションの構成
プロファイリングセッションを構成するには、次のことを行う必要があります。プロファイルするアプリケーションを dotMemory で実行する方法を指定します。これは、実行構成を使用して行うことができます。すでに実行中のアプリケーションのプロファイルを作成する場合、この手順は必要ありません。必要に応じて、他のプロファイリングオプションとプロセスフィルターを構成します。1. 実行構成の作成:実行構成は、プロファイルされたアプリケーションをどのように実行するかを dotMemory に指示する方法です...
プロファイリングセッションの制御
プロファイリングセッションを実行すると、dotMemory は新しい分析タブを開き、プロファイリングされたアプリケーションを起動します。プロファイリングプロセスを制御するには、ページの上部にある次のボタンを使用します。スナップショットを取得するプロセスのリストで選択されたプロセスのメモリスナップショットを取得します。スナップショットは、収集されたスナップショット領域に追加されます。スナップショットを取得してもプロファイリングプロセスは中断されないため、別のスナップショットを取得できます (たとえ...
プロファイリング結果の分析
十分なプロファイリングデータを収集したら、メモリの問題の原因の特定 (分析ステップ) に進むことができます。最初にユーザーインターフェースを確認するセクションで説明したように、メモリ分析では、分析対象 (特定のオブジェクトセットまたはインスタンス) を継続的に選択し、これらの対象をさまざまな視点 (ビュー) から調べることを前提としています。この章では、dotMemory ビューと分析ワークフローについて詳しく説明します。分析の概要、インスペクションビュー、オブジェクトセットの分析、インスタンス...