MID サーバーヒープダンプのメモリ使用率が高いかどうかを分析する方法Issue <!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } MID サーバーアプリケーションログまたはスレッドダンプから、各スレッドが現在使用しているメモリ量を確認する方法はありません。全体的なメモリ使用量のみを監視します。スレッドごとの場合は、MID サーバーアプリケーションの JVM の Java ヒープダンプが必要であり、それを分析する必要があります。 このKBは、JDKツールを使用してこれを行う方法と、EclipseとMemory Analyzerを使用してヒープ・ダンプを分析し、問題を引き起こしている特定のプローブを特定できるようにする1つの簡単な方法を示すことを目的としています。 Release<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } 任意:MID サーバーアプリケーションは常に Java ベースですが、プラットフォームのメジャーバージョンごとに異なる Java バージョンを使用する傾向があり、どのサードパーティツールを使用する必要があるかに影響する可能性があります。 Resolution<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } 次の 3 ビットのサードパーティソフトウェアが必要です。 jtrace ツールを含む Java JDK。バンドルされた JRE には jstack と jmap が含まれていますが、jtrace は含まれていません。例: Microsoft の OpenJDK ビルド 。MID サーバーにバンドルされているものと同じバージョンを使用します - 「MID サーバー Java ランタイム - バンドルされた互換バージョンに関する情報 KB0719830アップグレードまたは置換を参照してください。エクリプス例:Java 開発者向けの Eclipse IDE については、「 Eclipse のダウンロード」を参照してください。Eclipse 用のメモリアナライザープラグイン例:Eclipse Marketplace からの Memory Analyzer 、Eclipse をインストールした後 JDK をインストールし、実行中の MID サーバーのヒープダンプを取得します ヒープダンプをオンデマンドで作成する場合は、JDKが必要です。この手順は、「のスレッドダンプとヒープダンプの取得」で既に説明しています。 JDKなしでMIDサーバーがメモリ不足になったときにヒープダンプを作成する方法は、KB0717248 JVMのメモリ不足時にMidからヒープダンプを自動的に生成する方法は? Eclipse と Memory Analyzer をインストールし、ヒープダンプをロードします 通常の方法で Eclipseをインストールします。ヒープダンプは非常に大きく、デフォルトで最大 1 GB にすることも、wraper-override.conf wrapper.java.maxmemory パラメータが増加したものでもかまいません。Eclipse では 大きなヒープ・ダンプをロードするために、より多くのシステム・メモリーが割り当てられる必要があります。Eclipse インストールフォルダーにある eclipse.ini ファイルを開きます。これらの変更により、Eclipse で使用できるメモリが 8GB / 8192m に増加します。次の行を編集します。 -xms512m -xmx8192m 次の行を追加します。 -XX:PermSize=256m -XX:MaxPermSize=512m Eclipseを実行し、ワークスペースを作成しますメニューで ヘルプ - Eclipse マーケットプレイス を選択し、 Memory Analyser を検索してインストールします。Eclipse が再起動した後、メニューで Window - Perspective - Open Perspective - Other を選択し、Memory Analyser を選択しますメニューで [ファイル - ヒープ ダンプを開く] を選択し、前に作成したヒープ ダンプ ファイルを選択します。この解析には時間がかかります。 ヒープダンプを分析 ヒープダンプが解析されたら。使用中の合計メモリを示す概要が表示され、高メモリスレッドをすでに特定できる円グラフが表示されます。これはそれ自体が非常に便利です。 解析が完了するまで待機します[はじめに] ポップアップで、[漏れ疑い者レポート] を選択し、[完了] をクリックします。漏洩容疑者レポートがバックグラウンドで生成され、最終的に新しいタブとして表示されます。その間に、[概要] タブの [アクション] リストから [ドミネーターツリー] を選択します。これにより、オブジェクトとそのメモリ使用量のリストが表示され、最も悪いものが一番上に表示されます。興味深いものにたどり着くまで、メモリの高いオブジェクトを展開します。 これは、ServiceNow の機能またはプローブに関連する関数名で、どのコードが実行中で何をしているのかを知る手がかりを与えてくれる場合があります通常、オブジェクトの大量の配列が見つかり、合計すると大量のメモリになります。これらのアレイは通常、ターゲットから検出されたデータ、または IP 範囲のリスト、または CMDB CI です。 このスクリーンショットでは、そのプローブのためだけに 1.5 GB または RAM を使用する単一の Azure プローブがあることがわかります。これは、ディスカバリープローブの MID サーバーメモリの大幅な過剰使用であり、製品で修正が必要な既存または新規の既知の問題であることはほぼ確実です。 次のステップは、ナレッジベースで既知のエラー記事を検索しても原因がわからない場合は、HI でサポートケースを開くことです。 Related Links<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } これらのツールはすべてサードパーティのオープンソースソフトウェアであり、Web上には多くの詳細なドキュメントがあり、さまざまな使用方法があります。