Get visibility and insights across your whole organization, powering actions that improve security, reliability and innovation velocity.

1回目のマイナーGCまでの流れを把握する 前回は、HotSpot JVM(以下HotSpot)のヒープ構造を解説しました。今回は、HotSpot JVMの4つのヒープ領域がどのように使用されていくのかを見ていきましょう。 まず、アプリケーションがオブジェクトを作成すると、HotSpotはそのオブジェクトにEden領域を割り当てます。 図1 オブジェクトが生成されるとEden領域が割り当てられる アプリケーションが処理を実行していくと、オブジェクトがどんどん作成されていきます。その結果、Eden領域が次々と使用されていきます。 Eden領域がいっぱいになり、空き領域がなくなると、HotSpotはNew領域を対象にGCを行います。このGCは「マイナーGC」と呼ばれ、世代別GCで言う「若い世代のGC」になります。 このように、Eden領域で短命なオブジェクトを回収することで、ヒープを再利用できる
Revised: 2nd/Nov./2003; Since: 26th/Jan./2003 データ・エリア JVM のメモリ構造は、スタックとヒープに大別されます。ヒープ (Heap) は GC の対象で、JVM 起動時に割り当てられる広大な領域です。Java 仮想マシン・スタック (Java Virtual MAchine Stack) はスレッドごとに割り当てられる、メソッド起動ごとにフレーム (Frame) と呼ばれるデータを出し入れする線形のデータ構造です。クラスのインスタンスなどはヒープに格納しますが、インスタンスのような GC 対象となる動的なデータと、クラス構造などの静的なデータは、別の領域に保持し、静的な構造を保持する領域をメソッド・エリア (Method Area) と呼びます。 図:JVM のメモリ構造 Java 仮想マシン・スタック JVM はプロセスの一つとして、O
Full GC による Stop the World でサーバが停止状態に…、そんなときに調査の助けになるのが GC のログ。Permanent 領域が溢れているのか、Java Heap が溢れているのか、Heap が溢れているのなら何のオブジェクトが溢れているのか、メモリリークが発生しているのか。それが分からないと何気に対処のしようがない。 ただ、この GC のログ、それなりの設定をしておかないと解析に耐えないし役に立たない。役に立たないログ出力はディスク容量を圧迫するゴミになる。そういう感じのログを目にして、なんとかならんもんかなー、なんとかせねばなーと検討しており、Oracle のページからそれっぽいオプションを調べてみてる。 Java HotSpot VM Options 当然ながら「Oracle のページ」と書いてあるように、Oracle の JVM が対象であって、他の JVM
This document discusses various techniques for process synchronization. It begins by defining process synchronization as coordinating access to shared resources between processes to maintain data consistency. It then discusses critical sections, where shared data is accessed, and solutions like Peterson's algorithm and semaphores to ensure only one process accesses the critical section at a time.
大規模ミッションクリティカル系システムのためのTips。 たった1分遅れただけで、満席になってて座れないぐらいの人気セッションでした。 内容的にも、知らなかったTipsが多い、得るものの多いセッションでした。 このセッションで対象にするシステムは、メモリが16〜100GBぐらい、 スレッドが10〜100ぐらい同時に動くような規模のもの。 1. Heapを抑えるために、Composed OOPS (COOPS) を使いなさい。 方法 : -XX:+UseCompressedOOPS 効果 : ヒープに長く残っている情報を圧縮する。実際2.76GB → 2.27GBになった。 2. 1スレッドで(1リクエストで)たくさんのオブジェクトを生成する場合は、NUMAを使いなさい 方法 : -XX:+UserNUMA 効果 : GCの効率が改善する 3. 共有メモリを良いパフォーマンスで読み出したいな
本ブログはJava8(特にMetaspace)に対応していない。 下記にJava8以降に対応した記事を記載する(予定)。 blog.pepese.com JavaVMのメモリ領域について JavaVMが管理するメモリ領域について 階層1 階層2 階層3 説明 Javaヒープ JavaVM上で起動するJavaプログラムのリソースを管理する領域。New領域とOld領域で構成される。 l" New領域 新規オブジェクトと閾値(-XX:MaxTenuringThreshold)未満のオブジェクトが配置される。(Young領域とも呼ばれる) l l" Eden領域 新規のオブジェクトが配置される。 l l" From領域 CopyGC(ScavengeGC、マイナーGC)が実行された際に、使用中のオブジェクトはここへコピーされる。(S0やS1とも呼ばれる) l lー To領域 CopyGC(Scav
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く