web-dev-qa-db-ja.com

Ubuntu 9.04でTomcat 6にJavaヒープオプション(例:-Xmx))を設定する場所は?

Ubuntu 9.04のTomcat6パッケージを使用してTomcatを実行しています。これにより、jsvcを使用してTomcatからデーモンが作成されます。 TomcatのJavaヒープオプション-Xmxのようなヒープオプションを設定する適切な方法を知りたいUbuntuパッケージの更新によって上書きされる可能性があります。

私が今見るオプション:

  • /etc/init.d/Tomcat6のどこかにハードコードします。
  • /usr/share/Tomcat6/bin/catalina.shのどこかにハードコードします。
  • /usr/share/Tomcat6/bin/startup.shに行を作成して、CATALINA_OPTSに目的のフラグを設定し、CATALINA_OPTSを環境変数としてエクスポートします。 (これはcatalina.shによって取得されるようです。)

最後のオプションは最高のオプションのように聞こえ、(理由の説明なしで) Tomcat起動スクリプトでJavaのヒープスペースを増やす で推奨されています。しかし、私はセカンドオピニオンを得たいと思いました。誰もがより良い方法がないことを確認したいですか?

36
Chris

少なくともUbuntu 10.04では、/ etc/init.d/Tomcat6は/ etc/default/Tomcat6が存在する場合はそれをソースにします。私がオーバーライドを行うのはこの場所であり、それは一般にそのような変更を行うための「承認された」方法だと思います。

37
natacado

インストールのbinディレクトリを見ると、catalina.shまたは.batスクリプトが表示されます。これらを調べると、環境変数を設定するために、それぞれsetenv.shまたはsetenv.batスクリプトが実行されていることがわかります。関連する環境変数は、catalina.sh/batの上部にあるコメントに記載されています。それらを使用するには、たとえば、内容を含むファイル$ CATALINA_HOME/bin/setenv.shを作成します

export Java_OPTS="-server -Xmx512m"

Windowsの場合、setenv.batに次のようなものが必要です。

set Java_OPTS=-server -Xmx768m

これは、Tomcat 5.5〜7に当てはまります。元のanswear https://stackoverflow.com/questions/286007/how-to-tune-Tomcat-5-5-jvm-memory-settings-without-using-the -configuration-progra

16
viper33m

/ etc/Tomcat6/Tomcat6.confを探します。これは、Java_OPTSのようなものが準備されていて、コメントが解除されるのを待っています(ただし、コメントがある場合のみ) 、私はUbuntuではなくCentosを使用しています)。

# System-wide configuration file for Tomcat6 services
# This will be sourced by Tomcat6 and any secondary service
# Values will be overridden by service-specific configuration
# files in /etc/sysconfig
#
# Use this one to change default values for all services
# Change the service specific ones to affect only one service
# (see, for instance, /etc/sysconfig/Tomcat6)
#
...
#Java_OPTS="-Xminf0.1 -Xmaxf0.3"
7
KCD

これまでに見つけた最もエレガントな方法は、/ etc/init.d/Tomcat6を編集して、これをファイルの先頭に追加することです。

# local config settings
Java_OPTS="-Xms5000m -Xmx13000m

質問で説明した他のオプションが機能しないようです。スクリプトを調べてさらに実験した結果、/ usr/share/Tomcat6/bin/catalina.shと/usr/share/Tomcat6/bin/startup.shが、Tomcat6 UbuntuパッケージでのTomcatの起動に何らかの役割を果たすことを疑っています。代わりに; /etc/init.d/Tomcat6は、catalina.sh/startup.shによって通常行われる可能性のあるすべての作業を完全に置き換えます。

将来のパッケージアップデートでこれらの構成オプションが失われることについては、まだ少し心配ですが、それが起こった場合、それらを復元するのは非常に簡単でしょう。

2
Chris