java टॉमकैट 7: प्रारंभिक ढेर आकार को सही तरीके से कैसे सेट करें?




linux tomcat7 (8)

मैं catalina.sh को निम्न पंक्ति जोड़कर एक टोमकैट 7 (CentOS, जावा -वर्जन: 1.6.0_25-b06) उदाहरण के प्रारंभिक ढेर आकार को समायोजित करने का प्रयास कर रहा था:

export CATALINA_OPTS="-Xms=512M -Xmx=1024M"

टोमकैट शुरू करना विफल रहता है और निम्नलिखित संदेश को catalina.out पर लॉग करता है:

Invalid initial heap size: -Xms=512m
Could not create the Java virtual machine.

इन विकल्पों में क्या गलत है?


Tomcat7 (linux वितरण) के लिए जावा हीप आकार को सही ढंग से बढ़ाने के लिए निम्न आदेश का उपयोग करें:

echo 'export CATALINA_OPTS="-Xms512M -Xmx1024M"' > /usr/share/tomcat7/bin/setenv.sh

setenv.sh बेहतर है, क्योंकि आप आसानी से ऐसी मशीन को एक मशीन से दूसरे में, या एक टोमकैट संस्करण से दूसरे में पोर्ट कर सकते हैं। catalina.sh टॉमकैट के एक संस्करण से दूसरे संस्करण में बदल जाता है। लेकिन आप अपने setenv.sh को टॉमकैट के किसी भी संस्करण के साथ अपरिवर्तित रख सकते हैं।

एक और फायदा यह है कि यदि आप इसे अपने बैकअप या वर्जनिंग सिस्टम में जोड़ते हैं तो अपने परिवर्तनों के इतिहास को ट्रैक करना आसान है। यदि आप देखते हैं कि आप इतिहास के साथ setenv.sh परिवर्तन कैसे करते हैं, तो आप केवल अपने स्वयं के परिवर्तन देखेंगे। जबकि आप catalina.sh का उपयोग करते हैं, तो आप हमेशा न केवल अपने परिवर्तनों को देखेंगे, बल्कि टॉमकैट के प्रत्येक नए संस्करण के साथ आए परिवर्तन भी देखेंगे।


डेबियन वितरण में बदलाव के साथ ख्याल रखना! मैंने अपने डेबियन 7 में CATALINA_OPTS को बदलने की कोशिश की और परिणाम जहां टोमकैट अब शुरू नहीं हुआ। इस प्रकार मैंने इस समस्या को CATALINA_OPTS जगह JAVA_OPTS को बदलकर हल किया, इस तरह

export JAVA_OPTS="-Xms512M -Xmx1024M"

यह 'निर्यात' कीवर्ड का उपयोग किए बिना भी काम करता है। मेरे पास मेरे setenv.sh (/usr/share/tomcat7/bin/setenv.sh) में है और यह काम करता है।

ओएस: 14.04.1-उबंटू सर्वर संस्करण: अपाचे टॉमकैट / 7.0.52 (उबंटू) सर्वर बनाया गया: जून 30 2016 01:59:37 सर्वर संख्या: 7.0.52.0

JAVA_OPTS="-Dorg.apache.catalina.security.SecurityListener.UMASK=`umask` -server -Xms6G -Xmx6G -Xmn1400m -XX:HeapDumpPath=/Some/logs/ -XX:+HeapDumpOnOutOfMemoryError -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:SurvivorRatio=8 -XX:+UseCompressedOops -Dcom.sun.management.jmxremote.port=8181 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"
JAVA_OPTS="$JAVA_OPTS -Dserver.name=$HOSTNAME"

आपको निर्यात करने की आवश्यकता नहीं हो सकती है, बस इस पंक्ति को catalina.sh में जोड़ें:

CATALINA_OPTS="-Xms512M -Xmx1024M"

इस पर अच्छा समय बिताने के बाद। मैंने पाया कि setenv.bat जैसा दिखना चाहिए। नहीं "बैच फ़ाइल में अक्षर स्वीकार किए जाते हैं।

सेट करें CATALINA_OPTS = -Xms512m -Xmx1024m -XX: PermSize = 128m -XX: MaxPermSize = 768m

हैलो "% CATALINA_OPTS%" गूंजें


आपको = उपयोग नहीं करना चाहिए। बस इसका इस्तेमाल करें:

export CATALINA_OPTS="-Xms512M -Xmx1024M"

"टॉमकैट निर्देशिका" / बिन निर्देशिका पर जाएं

यदि लिनक्स फिर setenv.sh बनाते हैं तो विंडोज़ तब setenv.bat बनाते हैं

setenv की सामग्री। * फ़ाइल:

export CATALINA_OPTS="$CATALINA_OPTS -Xms512m"
export CATALINA_OPTS="$CATALINA_OPTS -Xmx8192m"
export CATALINA_OPTS="$CATALINA_OPTS -XX:MaxPermSize=256m"

इसके बाद नए पैरा के साथ टोमकैट पुनरारंभ करें।

स्पष्टीकरण और पूरी जानकारी यहां है

http://crunchify.com/how-to-change-jvm-heap-setting-xms-xmx-of-tomcat/





heap-memory