運営元のロゴ Copyright © 2007-2024 All Rights Reserved by Gijutsu-Hyoron Co., Ltd. ページ内容の全部あるいは一部を無断で利用することを禁止します。個別にライセンスが設定されている記事等はそのライセンスに従います。
システムの処理性能を高めるには,基盤となるJavaVM自体のチューニングを適切に実施する必要があります。日立のJavaVMでは,2種類のメモリ空間を管理しています。 この章では,ガーベージコレクションと日立のJavaVMでのメモリ管理,およびJavaヒープとExplicitヒープのチューニングについて説明します。 <この章の構成> 7.1 ガーベージコレクションとJavaVMのメモリ管理の概要 7.2 フルガーベージコレクション発生を抑止するためのチューニングの概要 7.3 Javaヒープのチューニング 7.4 Javaヒープ内のTenured領域のメモリサイズの見積もり 7.5 Javaヒープ内のNew領域のメモリサイズの見積もり 7.6 Javaヒープ内に一定期間存在するオブジェクトの扱いの検討 7.7 Javaヒープの最大サイズ/初期サイズの決定 7.8 Javaヒープ内のPerma
次? 代のサーバマシンによるシステムでは、CPUマルチコア化が進み、OSぜ 64bit化によってメモリも豊富に眩 むような大規模なものが一般的になるのではないでしょうか。このようなサーバ上ぜ Tomcatを起動させる場合、その? 富なリソースを生かしぜ Javaのヒープサイズ、GCチューニングを実施するのが一般的だと思゜ れます。ただし、このオプションを中途半端に? ? すると、逆にパフォーマンスを損なう可能性があることに注? しなければならないようです。 CPUマルチコアリソースを十分に活用する為ぜ GCチューニングパラメータに、「-XX:+UseParNewGC」「-XX:+UseConcMarkSweepGC」があります。前者ぜ GC処理をマルチCPUでパラレルに? 施するオプション、「-XX:ParallelGCThreads=n」と合゜ せてパラレル処理? (n)を指定出来ます。
バッチ処理などスループット重視のアプリケーションはデフォルトのパラレルGCで良いが、Java EEアプリケーションサーバなどレスポンスタイム重視のものやHadoopなどのクラスタ系ソフトウェアで死活監視に引っ掛る系などのstop the worldをなるべく避けたいいわゆるサーバ系ソフトウェアを運用する場合には、UseConcMarkSweepGCを付与して停止時間の短いCMS GCを使う。その場合にCMSのチューニングに踏み込もうとするとなんだか難しい記述がいっぱいで若干困るので、簡単なガイドをメモとして書いておく。 対象バージョンは以下。 $ java -version java version "1.7.0_51" OpenJDK Runtime Environment (fedora-2.4.5.1.fc20-x86_64 u51-b31) OpenJDK 64-Bit Serve
さて、前回までで、ログからフルGC(及び高負荷なコンカレントGC)が発生していることはわかりました。 で、このチューニングの目的は、GCによるマシンへの負担を低減することにあります。 まず「なぜGCが発生するのか?」と「jvmがどうやってメモリ管理を行っているのか?」を知らないとチューニングのしようがないのですが、これらについては、下記に詳しく記載されていたのでリンクをはっておきます。 GC発生の要因 http://www.atmarkit.co.jp/ait/articles/1005/13/news095.html HotSpot JVMのヒープ領域について http://gihyo.jp/dev/serial/01/jvm-arc/0007 で、これらをふまえて・・・ 一口にチューニングと言ってもいくつかのアプローチをとることができます。 とにかくOld領域がいっぱいにならないよう
OutOfMemoryError の対応方法/Heap 分析ツール(MAT)の使い方 1. Copyright (c)2014 ITOCHU Techno-Solutions CorporationCopyright (c)2014 ITOCHU Techno-Solutions Corporation OutOfMemoryError の対応方法 / Heap 解析ツール(MAT)の使い方 ソリューションビジネス部 橋本 和俊 2014/6/24 2. Copyright (c)2014 ITOCHU Techno-Solutions Corporation はじめに • 発表する内容は個人の見解であり、所属する組織の公式 な見解ではありません。 • 資料の内容は正確を期するよう注意しておりますが、妥 当性や正確性について保証するものではありません。 • 資料に関しては以下の環境において
本ブログは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ページを開く