Java エージェントがクラッシュする

Java エージェントがクラッシュするか、ハングアップするか、オーバーヘッドまたは CPU 使用状況が高くなります。
apmdevops104jp
問題の状況
Java エージェントがクラッシュするか、ハングアップするか、オーバーヘッドまたは CPU 使用状況が高くなります。
解決方法
エージェントの問題の原因は、以下のものである可能性があります。
  • サポートされていない設定
  • CA APM が JAVA プラットフォームのインスツルメンテーションを使用して監視を行うことによる JVM のバグ
  • インスツルメンテーションまたはメトリックの急増
これらの問題のトラブル シューティングを行うには、以下を確認してください。
  • 最近何か更新しましたか?
  • CA プロフェッショナル サービスが実装したカスタムのインスツルメンテーションや拡張機能がありますか?
  • 設定はサポートされていますか?
  • 以下の手順に従って、その問題がインスツルメンテーションに関連するのか、または JVM のバグに関連するのかを判断します。
    1. アプリケーション サーバを停止します。
    2. IntroscopeAgent.profile を開き、introscope.autoprobe.enable=false を設定します。
    3. アプリケーション サーバを起動します。
      問題が解決しない場合、その問題は CA APM のインスツルメンテーションに関連するものではありません。以下の解決方法を試してください。
      • -javaagent から -Xbootclasspath に切り替えます。
      • JVM を最新バージョンにアップグレードするか、または別の JVM を使用します。
      • JVM ベンダーにサポート インシデントをオープンします。
  • 問題の原因を識別できるようにするために、インスツルメンテーションの量を一時的に減らします。
    1. アプリケーション サーバを停止します。
    2. IntroscopeAgent.profile を開き、introscope.autoprobe.enable=false を設定します。
  • 一部のアプリケーション(特に SQL が動的に構成される場合)では、一意の SQL ステートメント文字列が大量に使用されます。この処理によって、SQLAgent メトリックが急増します。テストする場合は、
    <Agent_Home>
    /core/ext/SQLAgent.jar をエージェント ディレクトリから削除して SQL エージェントを無効にします。この操作を行うことができない場合は、introscope.agent.sqlagent.sql.maxlength=120 を設定します(デフォルト値は 990)。
    データベース自体により設定される制限以外に、SQL ステートメントの長さに制限はありません。maxlength を使用すると SQL ステートメントの長さを切り詰めることができます。この操作を行う目的は、SQL メトリックの急増を防ぐことです。
  • プラットフォーム モニタを無効にします。適切なプラットフォーム モニタ ファイルを /wily/ext ディレクトリから別のディレクトリに移動します。
  • toggles.PBD 内で、network メトリック、filesystem メトリック、および System File メトリックのトレーサをオフにします。実運用環境でこれらのメトリックを有効にすることは推奨されません。
    # TurnOn: SocketTracing # TurnOn: UDPTracing # TurnOn: FileSystemTracing
  • JMX の収集を無効にします。多くの JMX メトリックをポーリングすると CPU に負荷がかかります。
    可能であれば、当面の間は introscope.agent.jmx.enable=false を設定しておきます。
    introscope.agent.jmx.name.filter= のように、フィルタ文字列に NULL を設定しないでください。
    フィルタを設定していない場合、1 つのエージェントは何万もの JMX メトリックを作成できます。
  • ErrorDetector、ChangeDetector、Leakhunter、またはその他の拡張機能など、Introscope エージェントの追加のアドオンを無効にします。
    Leakhunter は 24 時間 365 日対応する監視ツールではなく、診断ツールです。このツールは、実稼働環境では有効にしないことをお勧めします。
    拡張機能は多くのメトリックを提供しますが、オーバーヘッドが高い多くのメトリックを生成します。
  • 追加のカスタム pbd を無効にします。
    TraceAllMethodsOfClass と TraceComplexMethodsOfClass のディレクティブの使用を避けます。
    監視するメソッドを慎重に選択します。
問題が解決されない場合、カスタマ サポートに問い合わせる前に、以下の情報を収集してください。
  • <Agent_Home>
    /logs (zip ファイル形式)
  • IntroscopeAgent.profile
  • オーバーヘッド、メモリ不足、ハングアップ、または CPU 使用率が高くなる状態が発生した場合には、5 ~ 10 秒間隔で、アプリケーション サーバに一連の 5 つのスレッド ダンプを生成します。
  • オーバーヘッドの問題の場合は、heapdump を生成します。Sun JVM の場合は、以下の JVM スイッチを追加します。
    XX:+HeapDumpOnOutOfMemoryError
    エージェントを再起動します。
  • GC ログを有効にします。Sun JVM の場合は、以下の JVM スイッチを追加します。
    -Xloggc:<File_Name>.log -XX:+PrintGCDetails
  • CA サポートにアップロードするアプリケーション サーバのログ ファイルは以下のとおりです。
    • WebSphere: System.out、system.err.native_stdout、native_stderr、および server.xml
    • WebLogic: ログ ファイルおよびアプリケーション サーバの起動スクリプト
    • Tomcat: ログ ファイルおよび catalina.sh/bat
    • JBoss: ログ ファイルおよび run.bat/sh
  • 完全なコア ダンプ(該当する場合)