環境変数を使用して Java の最小および最大ヒープ サイズを設定するにはどうすればよいですか?
Java の起動時にヒープ サイズを設定できることはわかっていますが、サーバーの環境変数を使用してこれを調整したいと考えています。
環境変数を使用して Java の最小および最大ヒープ サイズを設定するにはどうすればよいですか?
Java の起動時にヒープ サイズを設定できることはわかっていますが、サーバーの環境変数を使用してこれを調整したいと考えています。
環境変数を直接使用してそれを行うことはできません。java コマンドに渡される一連の「非標準」オプションを使用する必要があります。詳細については、java -X を実行してください。探しているオプションは -Xmx と -Xms です (これは「初期」ヒープ サイズなので、おそらく探しているものです。)
Ant や Tomcat などの一部の製品には、JAVA_OPTS 環境変数を検索するバッチ スクリプトが付属している場合がありますが、これは Java ランタイムの一部ではありません。これらの製品のいずれかを使用している場合は、次のように変数を設定できる場合があります。
set JAVA_OPTS="-Xms128m -Xmx256m"
次のような独自のコマンドラインでこのアプローチを取ることもできます。
set JAVA_OPTS="-Xms128m -Xmx256m"
java ${JAVA_OPTS} MyClass
実際、環境変数を介して Sun の JVM のグローバルなデフォルトを設定する方法があります。
コマンド ライン引数に追加せずに JVM を起動するたびに有効になるように、Java システム プロパティを設定する方法を参照してください。
環境変数を使用してそれを行うことはできません。これは、「非標準」オプションを介して行われます。実行:java -X
詳細については。探しているオプションは-Xmx
andです-Xms
(これは「初期」ヒープ サイズなので、おそらく探しているものです。)
あなたの唯一のオプションは、環境変数をコマンドラインに置き換えるスクリプトでjavaをラップすることだと思います
いくつかのメモ:
Apache ant は JAVA_OPTS について何も知りませんが、Tomcat の起動スクリプトは知っています。Apache ant の場合、ANT_OPTS を使用して、/ant/ を実行する JVM の環境に影響を与えますが、ant が起動する可能性のあるものには影響しません。
設定できる最大ヒープ サイズは環境に完全に依存します。ほとんどの 32 ビット システムでは、使用可能なメモリに関係なく、要求できるヒープ領域の最大量は 2GiB の範囲です。64 ビット システムでの最大のヒープは「非常に大きい」です。また、ヒープは JVM によって管理されており、ディスクへの大量のスワップは必要ないため、実際には物理メモリによっても制限されます。
サーバー環境では、通常、-Xms と -Xmx を同じ値に設定します。これにより、ヒープのサイズが特定のサイズに固定され、ガベージ コレクターが行う作業が少なくなります。サイズ。