Java Platform, Standard Editionトラブルシューティング・ガイド
目次      

2.7 ネイティブ・メモリー・トラッキング

ネイティブ・メモリー・トラッキング(NMT)は、Java HotSpot VMの内部メモリー使用状況を追跡するJava HotSpot VM機能です。NMTのスコープ、NMTを有効にする方法、およびその他の使用の詳細は、ネイティブ・メモリー・トラッキングを参照してください。

NMTでは、非JVMコードによるメモリーの割当てを追跡しないので、ネイティブ・コードのメモリー・リークを検出するには、オペレーティング・システムでサポートされたツールの使用が必要になる場合があります。

次の項では、VM内部メモリー割当てのモニターおよびVMメモリー・リークの診断方法について説明します。

2.7.1 NMTによるメモリー・リークの検出

メモリー・リークを検出するには、次の手順を実行します。

  1. 次のコマンドライン・オプションを使用して、サマリーまたは詳細なトラッキングが指定されたJVMを起動します: -XX:NativeMemoryTracking=summaryまたは-XX:NativeMemoryTracking=detail

  2. 初期のベースラインの確立 - NMTベースライン機能を使用して、開発とメンテナンスのときに比較するベースラインを取得するには、次を実行します: jcmd <pid> VM.native_memory baseline

  3. 次を使用して、メモリーの変更をモニターします: jcmd <pid> VM.native_memory detail.diff

  4. アプリケーションのメモリー・リークが少量の場合、それが明らかになるまで時間がかかる場合があります。

2.7.2 VM内部メモリーをモニターする方法

ネイティブ・メモリー・トラッキングをjcmdユーティリティとともに使用して、メモリーをモニターし、開発またはメンテナンス時にアプリケーションのメモリー使用量の増加が開始されないように設定できます。NMTのメモリー・カテゴリの詳細は、表2-1を参照してください。

次の項では、NMTのサマリーまたは詳細データを取得する方法、およびサンプル出力の解釈の方法を説明します。

目次      

Copyright © 1993, 2020, Oracle and/or its affiliates. All rights reserved.