Mule のプロファイリング

Mule Runtime Engine (Mule) をプロファイリングすると、カスタム Mule 拡張機能でのメモリリークを識別しやすくなる可能性があります。

Mule をプロファイリングするには、Java プロファイラーを Mule インスタンスに読み込む必要があります。
複数の Java プロファイラーオプションを使用できますが、MuleSoft では、JVM のパフォーマンスを分析するためによく使用されている Java プロファイルである YourKit​ を使用することをお勧めします。 YourKit を使用していない場合、各プロファイルのドキュメントを参照して、Mule-Java プロセスの接続方法をご確認ください。

Mule インスタンスをプロファイリングする方法は 2 つあります。

YourKit エージェントを参照するように Mule を設定する

この方法では、YourKit プロファイラーをダウンロードして ​wrapper.conf​ ファイルで設定し、Mule インスタンスを再起動します。プロセスを完了するには、YourKit UI をローカルまたはリモートの Mule インスタンスに接続します。
YourKit ドキュメントを参照してオペレーティングシステムに基づいてエージェントを適切に起動する方法の詳細を確認し、起動パラメーターの完全なリストを確認してください。

独自の YourKit プロファイラーエージェントを使用するには、次の操作を実行する必要があります。

  1. YourKit ビルドを Mule インスタンスに ダウンロード​します。以前のプロファイラーダウンロードリリースページから古いビルドバージョンをダウンロードすることができます。

  2. YourKit パッケージコンテンツを展開し、​/bin/​ フォルダー内でエージェントを見つけます。

  3. 次の行を ​$MULE_HOME/conf​ パスにある ​wrapper.conf​ ファイルに追加して、YourKit エージェントが Mule インスタンスとやりとりできるようにします。

wrapper.java.additional.<n>=-agentpath:<absolute-path-to-the-agent>=delay=10000

次の項目の値は次のとおりです。

  • <absolute-path-to-the-agent>​ 値は、マシンの設定およびオペレーティングシステムに応じて異なります。

  • <n>​ Java サービスラッパーのこのコンポーネントは ​wrapper.conf​ ファイルの残りの ​wrapper.java.additional​ コンポーネントと連続している必要があります。

  • <port>​ は省略可能なポート仕様です。デフォルトでは、YourKit エージェントによってインターネットに接続しているポートがスキャンされます。

たとえば、Linux 用の ​yjp-2013-build-13062​ をダウンロードしたとすると、​wrapper.conf​ で追加するエントリは次のようになります。

wrapper.java.additional.<n>=-agentpath:/yjp-2013-build-13062/bin/linux-x86-64/libyjpagent.so=delay=10000,port=<port>
  1. Mule を再起動します。

  2. Mule が再起動したら、ローカルまたはリモートの Mule インスタンスに接続するように YourKit プロファイラー UI を設定します。

YourKit UI をローカル Mule インスタンスに接続する

  1. ローカルマシンで YourKit を起動します。

  2. [Monitor Local Applications (ローカルアプリケーションを監視)] で ​MuleContainerBootstrap​ プロセスをダブルクリックします。

    profiling mule 286a5
  3. YourKit が Mule インスタンスに接続されていることを確認します。

    yourkit hooked up

YourKit UI をリモート Mule インスタンスに接続する

  1. ローカルマシンで YourKit を起動します。

  2. [Monitor Remote Applications (リモートアプリケーションを監視)] で ​[Connect to remote application (リモートアプリケーションに接続)]​ をクリックします。

    monitor remote apps
  3. サーバーのユーザー名とパスワードをセットアップします。

  4. SSH 認証を設定します:

    yourkit auth
  5. [OK]​ をクリックします。

  6. 使用可能なアプリケーションをスキャンした後で、YourKit は Mule インスタンスに接続されます。

    yourkit hooked up

アタッチモードでのプロファイラーエージェントの実行

この方法では、YourKit プロファイラーをダウンロードしてアタッチモードで実行されるようにそのエージェントを設定します。プロセスを完了するには、プロファイラーを実行します。アタッチモードで実行すると、実行中の Mule インスタンスを再起動せずにプロファイリングできます。

このタスクのステップは、環境に応じて異なります。ここで紹介している例が当てはまらない場合、YourKit ドキュメントを参照してください。

  1. プロファイラーを Mule インスタンスに ダウンロード​します。

  2. プロファイラーのパッケージを展開します。

  3. jps​ を実行して Mule の PID を判断します。

    jps
  4. MuleContainerBootstrap​ の PID を取得します。

    2838 MuleContainerBootstrap
    21311 Jps
  5. YourKit パッケージ内で、​bin​ ディレクトリを開きます。

    cd yjp-2015-build-15086/bin
  6. MuleContainerBootstrap​ の PID を含む ​-attach​ フラグを含めて、​yph.sh​ を実行します。

    ./yph.sh -attach 2838
  7. エージェントがアタッチされていることを確認します。

    Attaching to process 2838 using default options
    The profiler agent has attached. Waiting while it initializes...
    The agent is loaded and is listening on port 10001.
    You can connect to it from the profiler UI.

関連情報