2017-01-04 4 views
14

में अंतर मैं आउटऑफमेमरी अपवाद के स्पार्क निष्पादक JVM की निगरानी कर रहा हूं। मैंने निष्पादक JVM से कनेक्ट करने के लिए Jconsole का उपयोग किया। बाद JConsole का स्नैपशॉट है: enter image description hereप्रयुक्त, प्रतिबद्ध और अधिकतम ढेर मेमोरी

छवि का इस्तेमाल किया स्मृति में 3.8g के रूप में दिखाया गया है और प्रतिबद्ध स्मृति 8.6G है और अधिकतम स्मृति भी 8.6G है किसी को भी खेतों में प्रयुक्त और प्रतिबद्ध मेमोरी या किसी लिंक के बीच का अंतर समझा सकते हैं जो इसे समझाता है।

+5

https://docs.oracle.com/javase/7/docs/api/java/lang/management/MemoryUsage.html की [ – stark

+3

संभावित डुप्लिकेट क्यों linux प्रक्रिया निवासी की तुलना में एक JVM रिपोर्ट अधिक प्रतिबद्ध स्मृति सेट आकार?] (http://stackoverflow.com/questions/31173374/why-does-a-jvm-report-more-committed-memory-than-the-linux-process-resident-set) – the8472

उत्तर

3

MemoryUsage के जावा डॉक्टर से,

getUsed है:

बाइट में इस्तेमाल किया स्मृति की मात्रा

getCommitted()

जावा वर्चुअल मशीन का उपयोग करने के लिए प्रतिबद्ध बाइट्स में स्मृति की मात्रा देता है। जावा आभासी मशीन का उपयोग करने के लिए स्मृति की इस राशि की गारंटी है।

getMax()

अधिकतम कि स्मृति प्रबंधन के लिए इस्तेमाल किया जा सकता बाइट में स्मृति की मात्रा देता है। यह विधि -1 लौटाती है यदि अधिकतम मेमोरी आकार अपरिभाषित है।

स्मृति की यह राशि स्मृति प्रबंधन के लिए उपलब्ध होने की गारंटी नहीं है यदि यह प्रतिबद्ध स्मृति की मात्रा से अधिक है। जावा वर्चुअल मशीन मेमोरी आवंटित करने में विफल हो सकती है भले ही की उपयोग की गई मेमोरी इस अधिकतम आकार से अधिक न हो।

संबंधित मुद्दे