"increase the java heap size permanently?"に提供された回答は、実際に質問に答えません。少なくとも意味では私は期待していた。私は同じページのコメントにこの詳細を追加しましたが、私はその特典を獲得していませんが、私は逃げ出します。その質問の答えは、次のように次のようにエクスポートすると述べています:export _JAVA_OPTIONS="-Xmx4g"
。これは動作しますが、サーバをリブートした後は動作しません。リブート後にJavaヒープサイズを永久に増加させますか?
これはエクスポートされた変数であり、さらに下の別のメンバーとして、そのユーザーの.bashrcファイルにエイリアスを追加できます。つまり、設定はそのユーザーの環境が呼び出されたときにのみ呼び出されます。右?私が知りたいのは、このMaxHeapSizeの設定を取得する方法ですここで注意:
永久にサーバーが再起動された後も設定$ java -XX:+PrintFlagsFinal -version | grep -iE 'MaxHeapSize'
Picked up _JAVA_OPTIONS: -Xmx2g
uintx MaxHeapSize := 2147483648 {product}
java version "1.6.0_37"
OpenJDK Runtime Environment (IcedTea6 1.13.9) (rhel-1.13.9.4.el6_7-x86_64)
OpenJDK 64-Bit Server VM (build 23.25-b01, mixed mode)
。私は画像を扱うためのjarファイルを実行するbashスクリプトを持っています。これはすべてApacheユーザーによって実行されます。シェル環境を持たない。上記のエクスポート文字列をスクリプト環境に追加しても、目的のuintx MaxHeapSize値はレンダリングされません。 MaxHeapSizeをエクスポートするだけで値の変化がわかりますが、環境変数に依存しないようにこれを永続的に設定する方法が必要です。それは、私が探している答えです。ここでは、他の投稿で提供されている回答が回避策のようです。再起動後に永久に保持され、エクスポートされた環境変数に依存しないJava minおよびmaxヒープサイズのデフォルト設定をどのように設定/変更できますか?私は異なるデフォルト値を持つサーバーを持っているので、可能性があります。
は、最初の2件のコメントを読んだ後 を改定し、これはjarファイルを実行するスクリプトです:
PATH=$PATH:$HOME/bin:/usr/java/jdk1.5.0_05/bin
CLASSPATH=.:/home/hg/bin/imageutils.jar:
export CLASSPATH
export PATH
java com.hg.image.Thumbnail $1 $2 $3 $4 $5
私は、スクリプトの先頭に以下を追加してみました: export _JAVA_OPTIONS="-Xmx4g"
しかし、私が走ったときにMaxHeapのサイズを変更しなかった:
$ java -XX:+PrintFlagsFinal -version | grep -iE 'MaxHeapSize'
'export _JAVA_OPTIONS =" - Xmx4g "'を、サーバが起動されているスクリプトまたはシェルに追加する必要があります。実行中のユーザの '.bashrc'に渡します。 'export'を呼び出すことは、プログラム内でローカル変数を定義することと同じです。そのプログラムを再実行するときに再度設定する必要があります –
*" jarファイルを実行するbashスクリプトがあります "*したがって、スクリプト!そのスクリプトでは 'java -jar myjar.jar'を実行するので、' java -Xmx4g -jar myjar.jar'に変更すれば、そのスクリプトはそのJavaプログラムに対して常に*(永久に)4Gを使用します。 – Andreas
質問に自分のスクリプトの詳細を追加しました。したがって、両方の応答に基づいて、_JAVA_OPTIONS =をエクスポートする以外のヒープサイズのデフォルト値を変更する方法はありません。また、私が私の質問の私の改訂部分で言及したように、私はスクリプトに上記のエクスポートを追加し、それは動作しませんでした。スクリプトが実行された後も値は変わりません。だからその仕事と私はそれを目撃することはできません、または動作しない。 –