Pimp my Code. @wataru420

My name is Wataru Fukunaga.


テーマ:

デフォルトでは少量しか割り当てられない

Tomcatを利用してWebアプリケーションを作成する際、Tomcatが利用するJava仮想マシン(JVM)が利用するヒープメモリのサイズは、デフォルトでは少量しか割り当てられていない。

ある程度のアクセス数が見込めれる場合はきちんとチューニングする必要があります。

多少調べたので覚書程度に書いておきます。

Tomcatは起動時のJVMオプションを$CATALINA_OPTSや$JAVA_OPTS環境変数に設定することで制御できます。
これらの変数を設定する方法は色々ありますが、Tomcatの起動スクリプトのcatalina.shにはsetenv.shがあれば読み込むというコードが仕込まれているので、それを利用するのがスマートな気がします。

setenv.shの作り方

作り方は簡単です。
CATALINA_HOMEのbinにsetenv.shというファイルを作り、下記の内容を記述します。


#!/bin/sh

JAVA_OPTS="-server -Xms512M -Xmx512M"

export JAVA_OPTS


これでOKです。

設定できる代表的な項目

-server:サーバーモードを有効化
-XX:MaxPermSize:Permanent領域の最大値、割と大きなアプリケーションでも256Mも必要ないぐらい。
-XX:PermSize:Permanent領域の初期値、一般的にMaxPermSizeと同じにする。
-Xmx:ヒープ全体の最大値
-Xms:ヒープ全体の最小値、一般的にXmxと同じにする。
-Xmn:New世代領域サイズ -Xmxサイズの1/4 - 1/3程度
-XX:SurvivorRatio:Eden領域のサイズをFromまたはTo領域のサイズで割った値。一般に2 - 8程度。

-Dcom.sun.management.jmxremoteと記述するとjconsoleというJDKに付属されている監視ツールでアプリケーションのパフォーマンスやリソース消費に関する情報等を確認できる。

-XX:PrintGCDetails -Xloggc:<file>等と書くとGCのログが指定したファイルに出力される。

参考サイト

もっと詳しく知りたい方は下記のページがオススメです。
Javaメモリ、GCチューニングとそれにまつわるトラブル対応手順まとめ

Tomcatハンドブック 第2版
Tomcatハンドブック 第2版Jason Brittain Ian F. Darwin 村上 雅章

オライリージャパン 2008-11-21
売り上げランキング : 99414


Amazonで詳しく見る
AD
いいね!した人  |  コメント(0)  |  リブログ(0)

わちゅるさんの読者になろう

ブログの更新情報が受け取れて、アクセスが簡単になります

同じテーマ 「Java」 の記事

AD

Ameba人気のブログ

Amebaトピックス

    PR

    ブログをはじめる

    たくさんの芸能人・有名人が
    書いているAmebaブログを
    無料で簡単にはじめることができます。

    公式トップブロガーへ応募

    多くの方にご紹介したいブログを
    執筆する方を「公式トップブロガー」
    として認定しております。

    芸能人・有名人ブログを開設

    Amebaブログでは、芸能人・有名人ブログを
    ご希望される著名人の方/事務所様を
    随時募集しております。