VMware vCenter Orchestrator のスレッド ダンプ/ヒープ ダンプを JMX ポートでキャプチャするための手順
search cancel

VMware vCenter Orchestrator のスレッド ダンプ/ヒープ ダンプを JMX ポートでキャプチャするための手順

book

Article ID: 340466

calendar_today

Updated On:

Products

VMware Aria Suite

Issue/Introduction

  • VMware vCenter Orchestrator でワークフローを実行するのに時間がかかる。
  • メモリ リークにより vRO サービスがクラッシュすることがある。
  •  /var/log/vco/app-server/Server.log | Catalina. Out ファイルに、次のようなエントリが記録される。
SEVERE [localhost-startStop-2] org.apache.catalina.loader.WebappClassLoader.clearReferencesThreads The web application [/vco] appears to have started a thread named [Timer-0] but has failed to stop it. This is very likely to create a memory leak.
SEVERE [localhost-startStop-2] org.apache.catalina.loader.WebappClassLoader.clearReferencesThreads The web application [/vco] appears to have started a thread named [ldapCacheManager] but has failed to stop it.This is very likely to create a memory leak.
SEVERE [localhost-startStop-2] org.apache.catalina.loader.WebappClassLoader.clearReferencesThreads The web application [/vco] appears to have started a thread named [sessionRegistryCacheManager] but has failed to stop it.This is very likely to create a memory leak.
SEVERE [localhost-startStop-2] org.apache.catalina.loader.WebappClassLoader.clearReferencesThreads The web application [/vco] appears to have started a thread named [hornetq-buffer-timeout] but has failed to stop it.This is very likely to create a memory leak.


Symptoms:
免責事項:これは英文の記事「Steps to enable the JMX port to capture thread dump/ heap dump for VMware vCenter Orchestrator (2144338)」の日本語訳です。記事はベストエフォートで翻訳を進めているため、ローカライズ化コンテンツは最新情報ではない可能性があります。最新情報は英語版の記事で参照してください。

Environment

VMware vRealize Orchestrator 7.1.x
VMware vCenter Orchestrator 5.5.x
VMware vRealize Orchestrator 6.0.x
VMware vRealize Orchestrator 7.2.x
VMware vCenter Orchestrator Appliance 5.5.x
VMware vRealize Orchestrator 7.0.x
VMware vRealize Orchestrator 7.3.x

Cause

この問題は、Java のメモリ リークが原因で発生します。

Resolution


この問題を解決するには、JMX を有効にして vRO アプリケーションのセッションをトラブルシューティングする必要があります。
 
:Windows ベースの vRO 場合:
  • vRO がインストールされているローカル マシンに java をインストールします。ここで必要なのは、java/jdk ホーム ディレクトリの bin フォルダから visualvm を起動することだけです。

    または
  •  リモート マシンに java をインストールします。ただし、vRO サーバをリモートで監視するには、vRO サーバ構成ファイルの jmx ポートを有効にして、vRO サーバを再起動する必要があります。
vRO で jmx リモート ログを有効にするには: 
  1.  wrapper.conf と wrapper-auto.conf ファイルのバックアップを作成します。
  2.  次のようにファイルを編集します。

    wrapper.java.additional.21="-Dcom.sun.management.jmxremote.authenticate=false
    " wrapper.java.additional.22="-Dcom.sun.management.jmxremote.ssl=false"
    wrapper.java.additional.23="-Dcom.sun.management.jmxremote.port=1099"
    wrapper.java.additional.24="-Djboss.platform.mbeanserver"

    注:番号は順番に割り当てられ、最新のエントリが wrapper.java.additional.8 の場合は、ファイルを次のように編集します。

    wrapper.java.additional.9="Dcom.sun.management.jmxremote.authenticate=false"
    wrapper.java.additional.10="-Dcom.sun.management.jmxremote.ssl=false"
    wrapper.java.additional.11="-Dcom.sun.management.jmxremote.port=1099"
    wrapper.java.additional.12="-Djboss.platform.mbeanserver"
     
  3. vRO サービスを再起動します。
  4. JVisualVM を使用して、リモート マシンからポート 1099 のホストに接続します。


分析のダンプを作成する方法
  1. JAVA_HOM E ディレクトリ ->  JDK\bin フォルダに移動し、jVisualVM exe ファイルをダブルクリックします。
  2. アプリケーションを起動した後、[ローカル] アイコンまたは [リモート] アイコンを右クリックします。
  3. オプションにある [JMX 接続を追加] を選択して、jmx ポート番号とともに IP アドレスを指定します。

    たとえば、10.112.x.x:1099 のようになります。 
     
  4. JMS コンソールが開きます。
ヒープがグラフィック表示で提供されます。開いているプロセスを右クリックして、スレッド ダンプを収集することができます。

vRO 6.x 以前のアプライアンス上で JMX ポートを有効にするには: 
  1. vco サーバで jmx ポートを有効にするには、/var/lib/vco/app-server/conf/server.xml ファイルに次の行を追加します。 

    <Listener className="com.springsource.tcserver.serviceability.rmi.JmxSocketListener"
           port="6969"
           bind="vco_appliance_ip_address"
           useSSL="false"
           passwordFile="${catalina.base}/conf/jmxremote.password"
           accessFile="${catalina.base}/conf/jmxremote.access"|
           authenticate="false"/>
  2. vco サーバを再起動します。 
  3. jvisualvm を開き、リモート ホストを追加します。  
  4. vco_appliance_ip_address:6969 を使用して JMX 接続を追加します。 
  5. 接続に成功したら、接続されている jmx ホストをダブルクリックします。 
  6. [スレッド] > [スレッド ダンプ] に移動し、すべてのスレッドを収集します。 
スレッド ダンプを収集した後、server.xml ファイルに対して行った構成の変更を元の状態に戻してください。
 
vRO 7.x アプライアンス上で JMX ポートを有効にするには:
 
  1. CATALINA_OPTS は JVM_OPTS を入力としてとるので、CATALINA_OPTS を含む行の上の /var/lib/vco/app-server/bin/setenv.sh に、以下の行を追加します。

    JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=2838 -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"
     
  2. /var/lib/vco/app-server/conf/catalina.properties で、以下を変更します。 

    java.rmi.server.hostname= IP_of_vRO_server 
     
  3. vRO サービスを再起動します。


Additional Information

リモート jmx 接続を有効にする方法の詳細については、https://visualvm.java.net/jmx_connections.html を参照してください。