中古本JDKバージョン「Java仮想マシン、の深い理解は、」1.6です。本書の4.2.2例は、同じ性能ではなく、このレコードでは、jdk1.8下の本に記載されています。
jdk1.8ホットスポット仮想マシンが恒久的に世代を削除されているので、文字列定数は、ヒープメモリに移動しました。追加されたメタスペース(三次元空間)、メタスペースを移動させるための領域での方法。メタスペースは、メモリサイズは、物理マシンによって制限され、ローカルメモリを使用しています。
JSTATコマンドは、さまざまなステータス情報ラインツールを実行している仮想マシンを監視するために使用されます。これは、クラスのロード、メモリ、ガベージコレクション、JITコンパイラおよびその他の動作データの過程で仮想マシンを表示することができます。
模範的な書き込みの例
図1に示すように、新たなコントローラ
@RestController
@RequestMapping("/jvm/jstat")
public class B_Jstat {
Logger logger = LoggerFactory.getLogger(B_Jstat.class);
static List<OOMObject2> list = new ArrayList<>();
static class OOMObject2{
public byte[] placeholder = new byte[1024 * 1024]; //1M byte数组
}
public static void fillOutOfMemory(int num) throws InterruptedException{
list = new ArrayList<>();
for (int i = 0; i < num ; i++){
TimeUnit.MILLISECONDS.sleep(100);
list.add(new OOMObject2());
}
}
//属性list填充1000个OOMObject2实例,模拟堆内存溢出
@GetMapping("/obj")
public String outOfMemory(HttpServletRequest request) throws Exception{
fillOutOfMemory(1000);
return "完成";
}
}
図2に示すように、サービスを開始し、最大値と最小ヒープメモリは512メートルに設定されています。nohupを-Xms512m -Xmx512m -jar javaの春-ブートlean.jar&
図3に示すように、図1に示した動作状態JSTAT仮想マシンモニタを使用してJava / jdkXXX / binディレクトリにルートディレクトリ
図4に示すように、要求送信HTTPを:// XXX:8080 / JVM / jstat- / OBJ 、監視データが変更されます。
JSTAT -gc 6602 5000 100コマンドは説明します:
-gc役割はエデンの面積は、そのような歳の容量、使用領域、GCの合計時間やその他の情報などの2つの生存領域、を含む、Javaヒープの状態を監視することです。
6602春・ブートlean.jarこのサービスのプロセスIDです
5000は、お問い合わせのプロセスに一度5秒を表し
100は、100個のクエリの総数を示し
説明するために、図1のパラメータ
S0C survivor区0总容量,单位KB
S1C survivor区1总容量,单位KB
S0U survivor区0使用量,单位KB
S1U survivor区1使用量,单位KB
EC Eden区总容量,单位KB
EU Eden区使用量,单位KB
OC 老年代总容量,单位KB
OU 老年代使用量,单位KB
MC Metaspace总容量,单位KB
MU Metaspace使用量,单位KB
CCSC Metaspace中Klass Metaspace总容量,单位KB
CCSU Metaspace中Klass Metaspace使用量,单位KB
YGC Minor GC 次数
YGCT Minor GC 消耗总时间,单位S
FGC FullGC 次数
FGCT FullGC 消耗总时间,单位S
GCT GC总消耗时间,单位S
リストB_Jstat)(すべての新しいOOMObject2を引き起こし、強い参照でガベージコレクションのメカニズムを再利用することはできません。図1は、図から分かります。
1、古い時代の量が徐々にOUを上昇します。
2、OUは、EUは減らすことはできませんので、仮想マシンは、OUにオブジェクトをコピーすることはできません(最後の数行を、EUは削減することができない)、最大に達しました。
また、図生存領域からわかる3は、また、エデン領域の容量の部分から借用されてもよいです。