java - मेमोरी गहन अनुप्रयोगों के लिए जेवीएम अधिकतम ढेर आकार में वृद्धि




jvm jvm-arguments (4)

32-बिट जावा लगभग 1.4 से 1.6 जीबी तक सीमित है।

ओरेकल 32 बिट ढेर अकसर किये गए सवाल

उद्धरण

32-बिट जेवीएम के लिए अधिकतम सैद्धांतिक ढेर सीमा 4 जी है। उपलब्ध अतिरिक्त स्वैप, कर्नेल पता स्थान उपयोग, स्मृति विखंडन, और वीएम ओवरहेड जैसी विभिन्न अतिरिक्त बाधाओं के कारण, प्रक्रिया में सीमा बहुत कम हो सकती है। अधिकांश आधुनिक 32-बिट विंडोज सिस्टम पर अधिकतम ढेर आकार 1.4 जी से 1.6 जी तक होगा। 32-बिट सोलारिस कर्नेल पर पता स्थान 2 जी तक सीमित है। 32-बिट वीएम चलाने वाले 64-बिट ऑपरेटिंग सिस्टम पर, अधिकतम हेप आकार अधिक हो सकता है, जो कई सोलारिस सिस्टम पर 4 जी तक पहुंचता है।

मुझे जावा मेमोरी गहन अनुप्रयोग चलाने की ज़रूरत है जो 2 जीबी से अधिक का उपयोग करता है, लेकिन मुझे ढेर अधिकतम आकार बढ़ाने में समस्याएं आ रही हैं। अब तक, मैंने निम्नलिखित दृष्टिकोणों का प्रयास किया है:

  • -Xmx पैरामीटर सेट करना, उदाहरण के लिए -Xmx3000m। यह दृष्टिकोण JVM के निर्माण में विफल रहता है। जो मैंने गुमराह किया है, उससे ऐसा लगता है कि -एक्सएमएक्स 2 जीबी से कम होना चाहिए।

  • -XX: + आक्रामक हैप विकल्प का उपयोग करना। जब मैं इस दृष्टिकोण को आज़माता हूं तो मुझे 'पर्याप्त स्मृति नहीं' त्रुटि मिलती है जो बताती है कि ढेर का आकार 1273.4 एमबी है, भले ही मेरे कंप्यूटर में 8 जीबी मेमोरी है।

क्या कोई और दृष्टिकोण है जिसे मैं JVM के अधिकतम ढेर आकार को बढ़ाने की कोशिश कर सकता हूं? कंप्यूटर चश्मा का सारांश यहां दिया गया है:

  • ओएस: विंडोज 7 (64 बिट)
  • प्रोसेसर: इंटेल कोर i7 (2.66 गीगाहर्ट्ज)
  • मेमोरी: 8 जीबी
  • जावा-वर्जन:
java version "1.6.0_18"
Java(TM) SE Runtime Environment (build 1.6.0_18-b07)
Java HotSpot(TM) Client VM (build 16.0-b13, mixed mode, sharing)

जब आप 32-बिट मोड में JVM का उपयोग कर रहे हैं, तो अधिकतम ढेर आकार जिसे आवंटित किया जा सकता है 1280 एमबी है। इसलिए, यदि आप उससे आगे जाना चाहते हैं, तो आपको 64-मोड में JVM को आमंत्रित करने की आवश्यकता है।

आप निम्न का उपयोग कर सकते हैं:

$ java -d64 -Xms512m -Xmx4g HelloWorld

कहा पे,

  • -d64: 64-बिट JVM सक्षम करेगा
  • -Xms512m: प्रारंभिक ढेर आकार 512 एमबी के रूप में सेट करेगा
  • -Xmx4g: अधिकतम ढेर आकार 4 जीबी के रूप में सेट करेगा

आप अपनी आवश्यकताओं के अनुसार -Xms और -Xmx में ट्यून कर सकते हैं (वाईएमएमवी)

जेवीएम प्रदर्शन ट्यूनिंग पर एक बहुत अच्छा संसाधन, जो देखना चाह सकता है: http://java.sun.com/javase/technologies/hotspot/gc/gc_tuning_6.html


मेरे लिए conf काम के नीचे:

JAVA_HOME=/JDK1.7.51-64/jdk1.7.0_51/
PATH=/JDK1.7.51-64/jdk1.7.0_51/bin:$PATH
export PATH
export JAVA_HOME

JVM_ARGS="-d64 -Xms1024m -Xmx15360m -server"

/JDK1.7.51-64/jdk1.7.0_51/bin/java $JVM_ARGS -jar `dirname $0`/ApacheJMeter.jar "[email protected]"

Oracle से खुद को 64-बिट जेवीएम प्राप्त करें।





jvm-arguments