dotTrace 2020.2ヘルプ

IISサーバー上のプロファイルWebアプリケーション

通常、Webアプリケーションがサーバー上ですでに実行されている場合は、Webアプリケーションのパフォーマンスの課題を判断する必要があります。この表には、アプリケーションのプロファイリングのすべての可能なオプションがまとめられています。

長所短所ではなく機能
ローカルプロファイリング
  • 簡単な設定/使用: dotTraceのGUIを使ってプロファイルを作成する

  • dotTraceをサーバーにインストールして実行する必要があります。これは、セキュリティの制限やGUIの不在などの理由で不可能な場合があります。

リモートプロファイリング
  • 簡単な設定/使用: dotTraceのGUIを使ってプロファイルを作成する

  • スナップショットはローカルマシンに自動的にアップロードされます

  • dotTrace リモートエージェントをサーバーにインストールして実行する必要があります

  • ネットワークを介した通信が必要です

コンソールツールによるプロファイリング
  • ネットワーク通信は必要ありません

  • あらかじめ定義された多数のプロファイル設定を作成し、必要に応じて実行する機能

  • コンソールツールをサーバーにコピーして実行する必要があります

  • 結果として得られるスナップショットは、dotTraceを使用してサーバーからマシンに手動でコピーする必要があります。

ローカルプロファイリング

Local profiling

通常、ローカルプロファイリングは、(開発者の)マシンまたはセキュリティ/パフォーマンス制限を課さないテスト環境でホストされているアプリケーションをプロファイルする必要がある場合に使用されます。

IISサーバー上にホストされているWebアプリケーションをローカルでプロファイルするには

  1. サーバーにdotTraceをインストールします。

  2. スタンドアロンアプリケーションとしてdotTraceを実行する。dotTrace ホームウィンドウが開きます。

  3. 右側のパネルでプロファイルローカルアプリを選択します。

  4. 中央パネルのプロファイル適用で、IISを選択します。

  5. 右パネルのアプリケーションオプションURL を開くを選択し、プロファイルされたアプリケーションのURLを指定します。これを行わないと、dotTraceは最初に実行されているアプリケーションプールのプロファイリングを開始します。

  6. 右側のパネルのプロファイラオプションで、プロファイリングタイプを指定します。
    プロファイラオプションの詳細については、プロファイラオプションセクションを参照してください。

  7. オプションで、(コントローラーウィンドウではなく)APIを使用してプロファイリングセッション(スナップショットの取得、セッションの終了など)を制御する場合は、APIによるプロファイルの制御を選択します。APIを使用してプロファイリングを制御する方法の詳細については、APIを使用したプロファイリングセッションの制御の章を参照してください。

  8. 実行をクリックします。これを実行すると、IISサービスが開始され、結果として、プロファイルされたアプリケーションプールが再起動されることに注意してください。

  9. スナップショットを撮ります。プロファイリングセッションを制御する方法の詳細については、プロファイリングセッションの制御(手動でプロファイリングを制御する場合)またはAPIを使用したプロファイリングセッションの制御(APIを使用してプロファイリングを制御する場合)を参照してください。

  10. スナップショットを収集したら、コントローラーウィンドウで切り離すをクリックして、プロファイラをアプリケーションプールから切り離します。

  11. パフォーマンスビューアーまたはタイムラインビューアーで収集したスナップショットを分析します(選択したプロファイリングタイプによって異なります)。
    スナップショットには大量のネイティブコードが含まれているのが普通です。

リモートプロファイリング

Remote profiling

リモートプロファイリングは、パフォーマンスの低下/メモリの突然の課題の場合に最適です。

どのように動作しますか:dotTraceはローカルマシン上で実行されていますが、リモートエージェントはサーバー上で実行されています。リモートプロファイリングの最も良い点は、使いやすいdotTrace GUIを使用して作業し、収集したスナップショットを自動的にdotTraceにコピーして開くことです。

IISサーバー上にホストされているWebアプリケーションをリモートでプロファイルするには

  1. Webサーバーで、次の操作を行います。

    • ローカルコンピューター上のdotTraceインストールディレクトリ(デフォルトではRemoteAgent.zip)からC:\Users\[username]\AppData\Local\JetBrains\Installations\dotTrace[N]アーカイブをサーバー上の任意のディレクトリにコピーします。

    • サーバー上のアーカイブを解凍します。

    • サーバーのコンソールからRemoteAgent.exeを起動します。

    • リモートエージェントへのインバウンド接続(デフォルトではポート9100)がファイアウォールによってブロックされていないことを確認します。

  2. ローカルコンピューターで、スタンドアロンアプリケーションしてdotTraceを実行しますスタンドアロンアプリケーションとしてdotTraceを実行します。dotTraceウィンドウが開きます。

  3. 右側のパネルで新規セッション | プロファイルリモートアプリを選択します。

  4. 中央のパネルで、リモートエージェントのURLにリモートエージェントサービスのアドレスを指定します。
    デフォルトでは、URLはnet.tcp://[remote_computer_IP_address] 9100RemoteAgentです。

  5. リモートホストとの接続を確立するには、接続をクリックします。

  6. 中央パネルの実行アプリケーションへのアタッチで、プロファイルされたアプリケーションを実行しているアプリケーションプールに対応するw3wp.exeプロセスを選択します。

  7. オプションで、(コントローラーウィンドウではなく)APIを使用してプロファイリングセッション(スナップショットの取得、セッションの終了など)を制御する場合は、APIによるプロファイルの制御を選択します。APIを使用してプロファイリングを制御する方法の詳細については、APIを使用したプロファイリングセッションの制御を参照してください。

  8. 右側のパネルで、実行をクリックします。

  9. スナップショットを撮ります。プロファイリングセッションを制御する方法の詳細については、プロファイリングセッションの制御(手動でプロファイリングを制御する場合)またはAPIを使用したプロファイリングセッションの制御(APIを使用してプロファイリングを制御する場合)を参照してください。

  10. スナップショットを収集したら、コントローラーウィンドウで切り離すをクリックして、プロファイラをアプリケーションプールから切り離します。

  11. パフォーマンスビューアーまたはタイムラインビューアーで収集したスナップショットを分析します(選択したプロファイリングタイプによって異なります)。
    スナップショットには大量のネイティブコードが含まれているのが普通です。

Remote profiling

コンソールツールによるプロファイリング

Profiling with console tool

コンソールツールは、プロファイリングを自動化する必要がある場合に最適です。たとえば、Webアプリを時々プロファイルする必要があります。別の考えられるシナリオは、サーバーにアクセスできないが他の誰かがアクセスできる場合です。そのため、プロファイリングツールとバッチファイルを提供できます。

どのように機能しますか?つまり、コンソールツールをサーバーにコピーし、プロファイリングでアプリを実行する(アプリプールが再起動される)か、実行中のアプリケーションプールw3wp.exeにツールをアタッチします。

コンソールツールを使用してIISサーバー上のWebアプリケーションをプロファイルするには

  1. ConsoleProfiler.exeツールを使用してzipアーカイブをダウンロードし、サーバーにコピー/アンパックします。

  2. 次に、アプリケーションをホストするアプリケーションプールのプロファイリングを開始する必要があります。すでに実行中のアプリプールに接続するか、プロファイリングで新しいものを開始できます。新しいものを開始しても、アタッチに勝る利点はないため、後者のみを見ていきます(dotTraceコマンドラインプロファイラーの操作ですべての詳細を確認できます)。
    実行中のアプリプールにConsoleProfiler.exeを接続するには:

    ConsoleProfiler.exe attach 1234 --save-to=snapshot.dtp
    ここで、1234 は対応するw3wp.exeプロセスのプロセスIDです。
    ヒント:IDを取得するには、IISマネージャーで必要なサーバーを開きます。ワーカープロセスページに、実行中のワーカーとそのIDのリストがあります。

  3. パフォーマンスのスナップショットを作成する場合、次の2つのオプションがあります。

    • タイムアウトでスナップショットを取得する:

      ConsoleProfiler.exe attach 1234 --save-to=snapshot.dtp --timeout=5m
      ここでスナップショットは5分後に取得され、その後プロファイラはプロセスから切り離されます。

      Get snapshot by timeout
    • プロセス終了時にスナップショットを取得します。ConsoleProfiler.exeツールは、プロファイリングされたアプリケーションが正常に終了するとスナップショットを取得します(アプリが "kill" された場合、スナップショットは収集されません)。これを実現するには、たとえば、IISマネージャーの対応するアプリケーションプールをリサイクルにすることができます。

      Get snapshot on process exit

  4. 結果のスナップショットをdotTraceがインストールされているコンピューターにコピーし、パフォーマンスビューアーまたはタイムラインビューアーで分析します(選択したプロファイリングタイプによって異なります)。
    スナップショットには大量のネイティブコードが含まれているのが普通です。

最終更新日: 2020年8月06日