20120802 web logic12cforum_g1gc

10
<Insert Picture Here> WebLogic 12c Special Lighting Talk ! JDK7 Update4 G1GC とは何か 日本オラクル株式会社 Fusion Middleware事業統括本部 シニアセールスコンサルタント 松林 晶

Upload: oracle-fusion-middleware

Post on 20-Jan-2015

592 views

Category:

Documents


2 download

DESCRIPTION

[WebLogic12c Forum] Lightning Talk: G1GCのご紹介

TRANSCRIPT

Page 1: 20120802 web logic12cforum_g1gc

<Insert Picture Here>

WebLogic 12c Special Lighting Talk ! JDK7 Update4 G1GC とは何か 日本オラクル株式会社 Fusion Middleware事業統括本部 シニアセールスコンサルタント 松林 晶

Page 2: 20120802 web logic12cforum_g1gc

Copyright© 2012, Oracle and/or its affiliates. All rights reserved. 2

以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。また、情報提供を唯一の目的とするものであり、いかなる契約にも組み込むことはできません。以下の事項は、マテリアルやコード、機能を提供することをコミットメント(確約)するものではないため、購買決定を行う際の判断材料になさらないで下さい。オラクル製品に関して記載されている機能の開発、リリースおよび時期については、弊社の裁量により決定されます。

OracleとJavaは、Oracle Corporation 及びその子会社、関連会社の米国及びその他の国における登録商標です。文中の社名、商品名等は各社の商標または登録商標である場合があります。

Page 3: 20120802 web logic12cforum_g1gc

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

Agenda

•  GCとは •  G1GCとは •  G1GCのメカニズム

3

Page 4: 20120802 web logic12cforum_g1gc

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

プログラムで確保したメモリ領域を自動的に解放する技術

Page 5: 20120802 web logic12cforum_g1gc

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

Page 6: 20120802 web logic12cforum_g1gc

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

•  G1GCは、ヒープ領域を、リージョン単位に分け、マーク、退避でメモリを解放する技術

G1GC

6

リージョン(使用中)

生存オブジェクト

死亡オブジェクト

生存オブジェクトをマーク

退避

リージョン(空き)

解放 解放 退避

退避

生存オブジェクト空きリージョンに退避 退避元リージョンを解放

Page 7: 20120802 web logic12cforum_g1gc

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

•  G1GCは、この退避時間を予測し、指定した時間内にGCが終わるように制御する。(ソフトウェアリアルタイム)

G1GC

7

退避

G1GC

全ての生存オブジェクトを退避させると、過去の経験上から考えて・・・。10ミリ秒以内に終わらないな・・・。リージョン「甲」からの生存オブジェクトの退避は今回はやめておこう

甲 退避

退避

リージョン(使用中)

生存オブジェクト

死亡オブジェクト

リージョン(空き)

Page 8: 20120802 web logic12cforum_g1gc

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

Page 9: 20120802 web logic12cforum_g1gc

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

Page 10: 20120802 web logic12cforum_g1gc

Copyright© 2012, Oracle and/or its affiliates. All rights reserved. 10