- PR -

ヒープサイズの設定方法

1
投稿者投稿内容
YoshiYoshi
会議室デビュー日: 2007/05/28
投稿数: 9
投稿日時: 2007-05-28 15:02
こんにちは

現在以下のような構成でWebアプリケーションを作成しております
WebServer:Tomcat4.1
Database:Mysql4.1
OS:WindowsXP Professional
Memory:1024M
HDD:80GB

WebアプリでたまにOutofMemoryのエラーが発生しております
ヒープサイズの設定がデフォルトのまま(64M)なのでそれを変更したいのですが
変更できません

Tomcatの起動は、サービス起動ではなく、スタートメニューより「Start Tomcat」をつかい
起動しております

現在の設定としては
サーバマシンの環境変数に「CATALINA_OPTS」を作成
値に「-Xmx1024m -Xms512m -server」をいれ、サーバを再起動しました

確認のために参照元記事URLにもある確認方法で
--------------------------------------------------------------------------------
public class Test {
public static void main(String[] args) {
System.out.println(Runtime.getRuntime().maxMemory());
}
}
--------------------------------------------------------------------------------

で確認したところ
値は、「66650112」=約64MB
となっていて、設定が全然有効になりません

皆様のお知恵をお貸しください

山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2007-05-28 15:37
バッチファイル内で Tomcat 起動直前のところで echo で起動文をダンプして、設定がうまくコマンドラインに反映されているか確認してみましょう。
YoshiYoshi
会議室デビュー日: 2007/05/28
投稿数: 9
投稿日時: 2007-05-28 15:50
ご返答ありがとうございます

「Start Tomcat」内

"D:\Program Files\j2sdk_nb\j2sdk1.4.2\bin\java.exe" -jar -Duser.dir="d:\Program Files\Apache Group\Tomcat 4.1" "d:\Program Files\Apache Group\Tomcat 4.1\bin\bootstrap.jar" start

で起動されているので

echo on
%CATALINA_OPTS%
をこのStartバッチに組み込んだところ

期待通り、
「-server -Xmx1024m -Xms512m」
という答えが返ってきましたので設定は反映されていると判断致しましたが
何かまちがっていますでしょうか?
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2007-05-28 16:27
なるほど。CATALINA_OPTS はちゃんと設定されているみたいですね。

バッチファイル内で Tomcat 起動直前のところで echo で起動文をダンプして、設定がうまくコマンドラインに反映されているか確認してみてはいかがでしょう。
YoshiYoshi
会議室デビュー日: 2007/05/28
投稿数: 9
投稿日時: 2007-05-28 16:34
すいません。どうやら自分の理解が足りないようで

以下が、起動前にEcho ONした起動文です
以下の出力メッセージから正しく設定されているかはどこをみて確認できるのでしょうか?


C:\>"D:\Program Files\j2sdk_nb\j2sdk1.4.2\bin\java.exe" -jar -Duser.dir="d:\Program Files\Apache Group\Tomcat 4.1" "d:\Program Files\Apache Group\Tomcat 4.1\bin\bootstrap.jar" start
2007/05/28 16:30:30 org.apache.commons.modeler.Registry loadRegistry
情報: Loading registry information
2007/05/28 16:30:30 org.apache.commons.modeler.Registry getRegistry
情報: Creating new Registry instance
2007/05/28 16:30:30 org.apache.commons.modeler.Registry getServer
情報: Creating MBeanServer
2007/05/28 16:30:31 org.apache.coyote.http11.Http11Protocol init
情報: Initializing Coyote HTTP/1.1 on port 8080
サービス Tomcat-Standalone を起動します
Apache Tomcat/4.1.18
2007/05/28 16:30:34 org.apache.coyote.http11.Http11Protocol start
情報: Starting Coyote HTTP/1.1 on port 8080
2007/05/28 16:30:34 org.apache.jk.common.ChannelSocket init
情報: JK2: ajp13 listening on /0.0.0.0:8009
2007/05/28 16:30:34 org.apache.jk.server.JkMain start
情報: Jk running ID=0 time=0/94 config=d:\Program Files\Apache Group\Tomcat 4.1\conf\jk2.properties
YoshiYoshi
会議室デビュー日: 2007/05/28
投稿数: 9
投稿日時: 2007-05-28 16:54
大変失礼致しました

どうやら自分は、勘違いしておりました
StartTomcat(スタートメニューにある)は、単なるjava.exeの起動だけなのですね
今気づきました

%CATALINA_HOME%\bin内のstartup.batにechoをOnにしてダンプしたところ
「start "Tomcat" "・・・java" -server -Xmx512m -Xms256m ・・・」
という文で起動をしておりました

根本的な間違えに気づかせて頂きありがとうございます


とはいえ、起動後確認Javaソースで、maxMemoryの値は、やはり64Mのままでした
どこがいけないのかご教授お願い致します

YoshiYoshi
会議室デビュー日: 2007/05/28
投稿数: 9
投稿日時: 2007-05-28 17:15
すいません。

この確認Javaソースでは相変わらずmaxMemoryが64Mなのですが
Tomcatを起動させると、タスクマネージャの使用メモリが256M確かに増えているようです
そしてTomcatを終了するとそのメモリ分が開放されるため、どうやら設定はうまくいっているように思えます

Runtime().maxMemory()をもう少し勉強してみます
インギ様
ご指摘により一歩前進することができました
本当にありがとうございました

[ メッセージ編集済み 編集者: YoshiYoshi 編集日時 2007-05-28 17:15 ]
1

スキルアップ/キャリアアップ(JOB@IT)