20120802 web logic12cforum_g1gc
DESCRIPTION
[WebLogic12c Forum] Lightning Talk: G1GCのご紹介TRANSCRIPT
<Insert Picture Here>
WebLogic 12c Special Lighting Talk ! JDK7 Update4 G1GC とは何か 日本オラクル株式会社 Fusion Middleware事業統括本部 シニアセールスコンサルタント 松林 晶
Copyright© 2012, Oracle and/or its affiliates. All rights reserved. 2
以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。また、情報提供を唯一の目的とするものであり、いかなる契約にも組み込むことはできません。以下の事項は、マテリアルやコード、機能を提供することをコミットメント(確約)するものではないため、購買決定を行う際の判断材料になさらないで下さい。オラクル製品に関して記載されている機能の開発、リリースおよび時期については、弊社の裁量により決定されます。
OracleとJavaは、Oracle Corporation 及びその子会社、関連会社の米国及びその他の国における登録商標です。文中の社名、商品名等は各社の商標または登録商標である場合があります。
Copyright© 2012, Oracle and/or its affiliates. All rights reserved.
Agenda
• GCとは • G1GCとは • G1GCのメカニズム
3
Copyright© 2012, Oracle and/or its affiliates. All rights reserved.
ガベージコレクション(GC)とは
• 今更ですが、GCとは・・・
• アプリケーションの作りやヒープサイズに依存 • 少なすぎると、GCが頻発しパフォーマンス低下 • 大きすぎると、GC回数は少なくなるが、1回の停止時間が長い
• GCの種類(Hotspot) • フルGC : Young/Old領域の両方をGC対象とする • マイナーGC : Young領域のみをGCの対象とする
4
プログラムで確保したメモリ領域を自動的に解放する技術
Copyright© 2012, Oracle and/or its affiliates. All rights reserved.
• Java SE 7 2011年 Release! • 64bit JVM登場で巨大なヒープサイズ指定が可能に!
• しかし、GC対象の領域も増えることとなる ⇒ フルGCの停止時間も長くなるので、サービスレベルの高いシステムでは、巨大なヒープサイズの採用が難しい!(例えば、全てのリクエストが50msec以内に終わること!)
• そこで、Java SE 7 Update 4より、G1GCが登場
Java SE 7 Releaseで変わるGC事情
5
JVM
ヒープ:2GByte
JVM
ヒープ:30GByte
Copyright© 2012, Oracle and/or its affiliates. All rights reserved.
• G1GCは、ヒープ領域を、リージョン単位に分け、マーク、退避でメモリを解放する技術
G1GC
6
リージョン(使用中)
生存オブジェクト
死亡オブジェクト
生存オブジェクトをマーク
退避
リージョン(空き)
解放 解放 退避
退避
生存オブジェクト空きリージョンに退避 退避元リージョンを解放
Copyright© 2012, Oracle and/or its affiliates. All rights reserved.
• G1GCは、この退避時間を予測し、指定した時間内にGCが終わるように制御する。(ソフトウェアリアルタイム)
G1GC
7
退避
G1GC
全ての生存オブジェクトを退避させると、過去の経験上から考えて・・・。10ミリ秒以内に終わらないな・・・。リージョン「甲」からの生存オブジェクトの退避は今回はやめておこう
甲 退避
退避
リージョン(使用中)
生存オブジェクト
死亡オブジェクト
リージョン(空き)
Copyright© 2012, Oracle and/or its affiliates. All rights reserved.
最後に
• G1GCまとめ • Java SE 7 Update 4 から使用可能 • VMオプションに「 -XX:+UseG1GC 」を指定して実行! • ヒープをリージョン単位で分けて管理 • GC処理にかかる時間を予測し、高い確率でソフトウェアリアルタイム(停止時間)を守る
• 大きなヒープサイズ、マルチコア環境にて本領を発揮する • Oracle WebLogic Server 12c は Java SE 7 をサポート!!
8
Copyright© 2012, Oracle and/or its affiliates. All rights reserved.
Copyright© 2012, Oracle and/or its affiliates. All rights reserved. 10