Ubuntu 9.04에서 Tomcat 6에 대한 Java 힙 옵션 (예 : -Xmx)을 어디에서 설정합니까?


36

jbun을 사용하여 Tomcat에서 데몬을 만드는 Ubuntu 9.04의 tomcat6 패키지를 사용하여 Tomcat을 실행하고 있습니다. -XmxTomcat 과 같은 Java 힙 옵션을 설정하는 올바른 방법을 알고 싶습니다 . 가장 스타일 적으로 올바른 위치에 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의 힙 공간 늘리기 에서 이유를 설명하지 않고 옹호 되었습니다 . 그러나 나는 두 번째 의견을 얻고 싶었다. 더 좋은 방법이 없다는 것을 확인하고 싶은 사람이 있습니까?

답변:


37

적어도 우분투 10.04, /etc/init.d/tomcat6에서 / etc / default / tomcat6 소스가있는 경우 그것이 내가 재정의를 한 곳이며, 일반적으로 그러한 변경을하는 것이 "승인 된"방법이라고 생각합니다.


7
/ etc / default / tomcat6는 올바른 장소입니다
Amala

+1 구성은 /etc가능하면 항상 수행해야 합니다.
Marcus Downing

2
CentOS에서 내가 찾은 위치는 /etc/tomcat6/tomcat6.conf
khylo

1
CentOS 6.4에서 /etc/tomcat6/tomcat6.conf큰 파일이며 개인 사용자 지정 내용을 거기에 넣고 싶지 않아서 파일을 만들고 $CATALINA_HOME/bin/setenv.sh소싱했습니다 /usr/sbin/tomcat6. 이것이 CentOS 사용자에게 도움이되기를 바랍니다 (예, 원래 질문은 우분투에 대한 것임을 알고 있습니다).
DuffJ

@ khylo yep, 알아내는 데 조금 시간이 걸렸습니다. CentOS에서 /etc/init.d/tomcat6은 / usr / sbin / tomcat6을 호출하고 있습니다. catalina.sh를 호출하지 않고 Tomcat 부트 스트랩 클래스를 직접 호출합니다 (Ubuntu /etc/init.d/tomcat6과는 달리) catalina.sh를 호출)
Eran Medan

16

설치의 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까지입니다. Original answear https : //.com/questions/286007/how-to-tune-tomcat-5-5-jvm-memory-settings-without-using-the-configuration-progra


1
/ etc / default /에 포함되지 않은 시스템 (예 : FreeBSD)에 적합합니다.
vadipp

7

/etc/tomcat6/tomcat6.conf찾아 보십시오. JAVA_OPTS와 비슷한 기능이 준비되어 있으며 주석 처리를 해제하기를 기다리는 중입니다.

# 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
이것은 Tomcat의 CentOS / yum / RPM 버전에 맞는 것 같습니다. 우분투를 들어 /를 setenv.sh가 AFAIK 갈 수있는 올바른 방법입니다 패키지 쉽다는 - 수
에 란 메단

예, centos tomcat6.conf가 제대로 작동하기 때문에 KCD가 정확합니다. 명령으로 검사 추신 보조 | grep tomcat 그것은 내가 설정 한 값으로 매개 변수를 보여줍니다.
마니 칸탄 아루나 찰람

2

지금까지 찾은 가장 우아한 방법은 /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에 의해 수행 될 수있는 모든 작업을 완전히 대체합니다.

나는 향후 패키지 업데이트에서 이러한 구성 옵션을 잃어 버릴 염려가 있지만, 그럴 경우 복원하기가 쉽다고 생각합니다.


Tomcat을 실행하려는 모든 사용자에 대해 .bashrc에서 설정 (내보내기) 할 수 있습니까? [끔찍한 문법을 ​​실례합니다] Tomcat 패키지 등의 업데이트 후에도 유지됩니다. init의 "run-as"기능이 해당 사용자의 일반 셸을 시작하고 할당을 선택한다고 가정합니다. 참조 howtogeek.com/howto/linux/installing-tomcat-6-on-ubuntu
데이비드 J. Liszewski에게
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.