Ubuntu 9.04 altında Tomcat 6 için java öbek seçeneklerini (örn. -Xmx) nerede ayarlayabilirim?


36

Tomcat'ı Ubuntu 9.04'ten gelen tomcat6 paketini kullanarak çalıştırıyorum. -XmxTomcat gibi Java yığın seçeneklerini ayarlamak için doğru yolu bilmek istiyorum . Yapılandırmayı, stilistik olarak en doğru olan yere ve Ubuntu paketi güncellemelerinin üzerine yazılma ihtimalinin en düşük olduğu her yere koymak isterim.

Şu an gördüğüm seçenekler:

  • Onları bir yere zorla kodla /etc/init.d/tomcat6.
  • Onları bir yere zorla kodla /usr/share/tomcat6/bin/catalina.sh.
  • /usr/share/tomcat6/bin/startup.shCATALINA_OPTS öğesini istenen bayraklara sahip olacak şekilde ayarlamak için bir satır oluşturun ve ardından CATALINA_OPTS'yi bir ortam değişkeni olarak dışa aktarın. (Bu anlaşılacak gibi görünüyor catalina.sh.)

Son seçenek en iyisi gibi gözüküyor ve Tomcat başlangıç ​​betiğinde Java'nın boşluk alanını artırmak konusunda (nedenini açıklamadan) savunuyor . Ama ikinci bir görüş almak istedim. Daha iyi bir yol olmadığını onaylamak isteyen var mı?

Yanıtlar:


37

En azından Ubuntu 10.04, /etc/init.d/tomcat6, varsa / etc / default / tomcat6 kaynaklarında. Bu benim geçersiz kılmalarmı koyduğum yer ve bu tür değişiklikler yapmanın genellikle "onaylanmış" bir yol olduğuna inanıyorum.


7
/ etc / default / tomcat6 uygun yer
Amala

+1 Yapılandırma her zaman /etcmümkünse yapılmalıdır .
Marcus Downing

2
CentOS’ta bulduğum yer /etc/tomcat6/tomcat6.conf
khylo

1
CentOS 6.4'te /etc/tomcat6/tomcat6.confbüyük bir dosya ve kişisel özelleştirmelerimi oraya koymak istemedim, bu yüzden oluşturdum $CATALINA_HOME/bin/setenv.shve kullandım /usr/sbin/tomcat6. Umarım bu CentOS kullanıcılarına yardımcı olur (evet, asıl sorunun Ubuntu için olduğunu biliyorum).
DuffJ

@khylo yep, çözmem biraz zaman aldı. CentOS'ta görünüyor /etc/init.d/tomcat6, / usr / sbin / tomcat6'yı çağırıyor, bu, catalina.sh'yi ÇIKARMAYIYOR, ancak doğrudan doğrudan tomcat önyükleme sınıfını çağırıyor (Ubuntu /etc/init.d/tomcat6 yerine catalina.sh çağırıyor)
Eran Medan

16

Eğer kurulumunuzun bin dizinine bakarsanız catalina.sh veya .bat scriptlerini göreceksiniz. Bunlara bakarsanız, ortam değişkenlerini ayarlamak için sırasıyla bir setenv.sh veya setenv.bat betiğini çalıştırdıklarını göreceksiniz. İlgili ortam değişkenleri, catalina.sh/bat adresindeki açıklamalarda açıklanmıştır. Bunları kullanmak için, örneğin, $ CATALINA_HOME / bin / setenv.sh adlı bir dosya oluşturun

export JAVA_OPTS="-server -Xmx512m"

Windows için setenv.bat dosyasında

set JAVA_OPTS=-server -Xmx768m

Bu 7. Orijinal answear yoluyla tomcat 5.5 dan doğrudur https://stackoverflow.com/questions/286007/how-to-tune-tomcat-5-5-jvm-memory-settings-without-using-the-configuration-progra


1
FreeBSD gibi / etc / default / include olmayan sistemler için iyi çalışır.
vadipp

7

JAVA_OPTS gibi hazır olan ve rahatsız olmanızı bekleyen /etc/tomcat6/tomcat6.conf dosyasını arayın (ancak siz varsa, Ubuntu'yu değil Centos kullanıyorum).

# 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"

4
Bu, tomcat'ın CentOS / yum / RPM sürümleri için doğru görünüyor. Ubuntu için / setenv.sh afaik gitmek doğru yoldur paketlemek apt-get
Eran Medan

evet, KCD doğru, centOS için tomcat6.conf iyi çalışıyor. Ps aux komutuyla kontrol edildi | grep tomcat , parametreyi ayarladığım değerleri ile gösterir.
Manikandan Arunachalam

2

Şimdiye kadar bulduğum en şık yol /etc/init.d/tomcat6 dosyasını düzenlemek ve dosyanın üstüne eklemek:

# local config settings
JAVA_OPTS="-Xms5000m -Xmx13000m

Sorumu ana hatlarıyla belirttiğim diğer seçenekler işe yaramadı. Senaryoyu okuduktan ve biraz daha denedikten sonra, artık /usr/share/tomcat6/bin/catalina.sh ve /usr/share/tomcat6/bin/startup.sh 'ın tomcat6 Ubuntu paketiyle tomcat başlangıcında herhangi bir rol oynadığından şüpheliyim. Yerine; /etc/init.d/tomcat6 normalde catalina.sh/startup.sh tarafından yapılabilecek işleri tamamen değiştirir.

Gelecekteki bir paket güncellemesinde bu yapılandırma seçeneklerini kaybetme konusunda hala endişeliyim, ancak bu olursa onları geri yüklemek oldukça kolay olurdu.


Tomcat olarak çalışmasını istediğiniz kullanıcı için .bashrc dosyasında (ihraç edilebilir) ayarlanabilir mi? [lütfen korkunç dilbilgisini affedin] Bu, Tomcat paketindeki güncellemelerden kurtulacaktı, vb. init'teki "run-as" özelliğinin o kullanıcı için normal kabuk başlatacağını ve atamayı alacağını farz ediyorum. Ayrıca bkz. Howtogeek.com/howto/linux/installing-tomcat-6-on-ubuntu
David J. Liszewski
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.