Ubuntu 9.04 के तहत Tomcat 6 के लिए जावा ढेर विकल्प (जैसे -Xmx) कहाँ सेट करें?


36

मैं Ubuntu 9.04 से tomcat6 पैकेज का उपयोग करके टॉमकैट चला रहा हूं, जो कि जेस्माइल का उपयोग करके टॉमकैट से एक डेमॉन बनाता है। मैं -Xmxटॉमकैट के लिए जावा हीप विकल्प सेट करने का उचित तरीका जानना चाहता हूं । जहाँ भी सबसे अधिक शैलीगत रूप से सही है, मैं कॉन्फ़िगरेशन डालना चाहता हूँ, और जहाँ भी संभव हो कम से कम उबंटू पैकेज अपडेट द्वारा अधिलेखित होने की संभावना है।

मेरे द्वारा अभी देखे जाने वाले विकल्प:

  • हार्ड-कोड उन्हें कहीं में /etc/init.d/tomcat6
  • हार्ड-कोड उन्हें कहीं में /usr/share/tomcat6/bin/catalina.sh
  • /usr/share/tomcat6/bin/startup.shवांछित झंडे लगाने के लिए CATALINA_OPTS सेट करने के लिए एक लाइन बनाएं और फिर CATALINA_OPTS को एक पर्यावरण चर के रूप में निर्यात करें। (ऐसा लगता है कि यह द्वारा उठाया जाएगा catalina.sh।)

आखिरी विकल्प सबसे अच्छा लगता है, और यह टॉमकैट स्टार्टअप स्क्रिप्ट में जावा के ढेर को बढ़ाने पर वकालत (बिना स्पष्टीकरण के) । लेकिन मैं दूसरी राय लेना चाहता था। कोई भी पुष्टि करना चाहता है कि बेहतर तरीका नहीं है?

जवाबों:


37

कम से कम Ubuntu 10.04 पर, /etc/init.d/tomcat6 स्रोत / etc / default / tomcat6 मौजूद होने पर। यहीं पर मैंने अपना ओवरराइड किया, और मेरा मानना ​​है कि इस तरह के बदलाव करने के लिए यह "स्वीकृत" तरीका है।


7
/ etc / default / tomcat6 उचित स्थान है
अमला

/etcयदि संभव हो तो +1 कॉन्फ़िगरेशन हमेशा किया जाना चाहिए ।
मार्कस डाउनिंग

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

@ यखलो हां, मुझे इसका पता लगाने में थोड़ा समय लगा। CentOS में लगता है कि /etc/init.d/tomcat6 / usr / sbin / tomcat6 कॉल कर रहा है, जो किटेलिना को कॉल नहीं कर रहा है। लेकिन सीधे टॉमकट बूटस्ट्रैप क्लास को कॉल करता है (जैसा कि Ubuntu -etc/init.d/tomcat6 के विपरीत है) उत्प्रेरित कर रहा है। शश)
एरन मेडन

16

यदि आप अपनी स्थापना की बिन निर्देशिका में देखते हैं तो आपको catalina.sh या .bat स्क्रिप्ट दिखाई देगी। अगर आप इन्हें देखेंगे तो आप देखेंगे कि ये पर्यावरण चर सेट करने के लिए क्रमशः एक setenv.sh या setenv.bat स्क्रिप्ट चलाते हैं। प्रासंगिक पर्यावरण चर, कैटिना.श.बट के शीर्ष पर टिप्पणियों में वर्णित हैं। उदाहरण के लिए, उन्हें बनाने के लिए, सामग्री के साथ एक फ़ाइल $ CATALINA_HOME / bin / setenv.sh

export JAVA_OPTS="-server -Xmx512m"

विंडोज के लिए आपको setenv.bat में, कुछ इस तरह की आवश्यकता होगी

set JAVA_OPTS=-server -Xmx768m

यह सच है कि tomcat 5.5 से 7 के माध्यम से। मूल उत्तर https://stackoverflow.com/questions/286007/how-to-tune-tomcat-5-5-jvm-memory-settings-without-use-the-configuration-progra


1
/ Etc / default / शामिल, उदाहरण के लिए, FreeBSD के बिना सिस्टम के लिए अच्छी तरह से काम करता है।
वादीप

7

/Etc/tomcat6/tomcat6.conf के लिए देखें जिसमें JAVA_OPTS की पसंद तैयार है और आपके असहज होने की प्रतीक्षा कर रहा है (लेकिन केवल अगर आपके पास यह है, तो मैं 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"

4
ऐसा लगता है कि Centcat / yum / RPM संस्करण के लिए सही है। Ubuntu / apt-get package के लिए setenv.sh AFAIK जाने का सही तरीका है
एरन मेडन

हां, केसीडी सही है, सेंटोस के लिए tomcat6.conf अच्छी तरह से काम करता है। कमांड पीएस ऑक्स के साथ जाँच की | 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 द्वारा किया जा सकता है।

मैं अभी भी कुछ भविष्य के पैकेज अपडेट में इन कॉन्फिगर विकल्पों को खोने के बारे में थोड़ा चिंतित हूं, लेकिन मुझे लगता है कि अगर ऐसा होता है तो उन्हें पुनर्स्थापित करना बहुत आसान होगा।


क्या आप जो कुछ भी चाहते हैं, उसके लिए .bashrc में सेट (निर्यात) सेट किया जा सकता है? [कृपया भयावह व्याकरण का बहाना करें] जो टॉमकैट पैकेज के अपडेट से बचेगा, आदि मैं मान रहा हूं कि "रन-अस" सुविधा उस उपयोगकर्ता के लिए सामान्य शेल शुरू कर देगी और असाइनमेंट को चुन लेगी। यह भी देखें कि howtogeek.com/howto/linux/installing-tomcat-6-on-ubuntu
David J. Liszewski
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.