- - PR -
CATALINA_OPTSで1024MB以上のメモリが割り当てられない
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-08-10 07:11
いつもお世話になります、わかです。
CATALINA_OPTS の設定方法について、識者の方からのアドバイスをいただければ幸いです。 <実現したいこと> tomcat java-vm に、環境変数 CATALINA_OPTS を使ってメモリを1024MB以上割り当てたい <環境> Red Hat Enterprise Linux ES4 JDK 5.0 update 6 Apache Tomcat 5.5.17 稼働サーバではメモリを6GB搭載しています # free にて確認 <試したこと> 環境変数 CATALINA_OPTS を下記のように設定しました
その後、tomcatの起動を試みたのですが、 Could not create the Java virtual machine. と表示され、起動できませんでした。 CATALINA_OPTS を
と変更すると、tomcat は問題なく起動できました。 -Xmx に 1024m 以上の値を設定するには、どのようにしたらよいのでしょうか。 アドバイス頂ければ幸いです。 | ||||||||
|
投稿日時: 2006-08-10 09:44
このような場合の検証方法は起動する値を少しずつ増やしてどこが駄目でどこ迄は
大丈夫なのか、をきちんと把握することが必要です。 今回の場合、目的である 3G が NG で、1G は OK だから 1G 以上は割り当てられない という結論にいたっていますが、では、1.5G は? 2G は? そのようにして確認していき、起動できなくなる点を見極めそのときに なにがおきているのか、を確認するのがひつようではありませんか? # もちろん、利用している VM のドキュメントを読んで使用上の制限が # 無いかどうかを確認するのも大切です。 | ||||||||
|
投稿日時: 2006-08-10 09:47
Sun JDK 5.0のjavaコマンドのマニュアルによると
だそうです。 VMの制限により、3096m(4096mの間違い?)は設定できないそうです。 1024mよりもう少し多めには設定できそうですが。 | ||||||||
|
投稿日時: 2006-08-10 11:07
>>Sun JDK 5.0のjavaコマンドのマニュアルによると
ということは CATALINA_OPTSでテストするより単純に java -Xmx数値M クラス名 でテストしたほうが簡単でわかりやすいですね | ||||||||
|
投稿日時: 2006-08-10 11:55
みなさま、アドバイスありがとうございます。
java -Xmx数値m -version で、vm の起動可否を測定してみました。 その結果 # java -Xmx2644m -version java version "1.5.0_07" Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_07-b03) Java HotSpot(TM) Server VM (build 1.5.0_07-b03, mixed mode) # java -Xmx2645m -version Error occurred during initialization of VM Could not reserve enough space for object heap Could not create the Java virtual machine. となり、私の環境では -Xmx2644m が vm 起動可能な上限のようです。 これ以上のメモリ量で vm を起動されている方、おられないでしょうか。 # 可能な限り vm の最大メモリ量を増やした方が、 # 動作させる java アプリのパフォーマンスは向上する、と考えていますが、 # そもそもこの考え自体に誤りがあるのでしょうか。 識者の方、引き続きアドバイス頂ければ幸いです。 | ||||||||
|
投稿日時: 2006-08-10 13:59
1G/3G メモリモデルでは、ユーザプロセスのメモリ割り当ての最大値は 3G なので、まあそのへんでしょう。 このあたりをご参考に。 http://opentechpress.jp/kernel/03/07/10/034238.shtml
こちらは、Java アプリの作り方によるとしか言いようがないです。 向上することもあれば、悪化することもあります。 | ||||||||
|
投稿日時: 2006-08-10 15:05
メモリが潤沢にあるサーバならばTomcat1つではなく、
ポート番号を変えて2つ以上のTomcatを起動させて セッションレプリケーション+ロードバランス させて、1つあたり1G程度のメモリを割り当てた方が バランスがいいのではないでしょうか、耐障害性 なども上がるでしょうし。 |
1