देशी मेमोरी ट्रैकिंग सक्षम के साथ जावा ऐप (YARN में) चलाते समय (-XX:NativeMemoryTracking=detail
https://docs.oracle.com/javase/8/docs/technotes/guides/vm/nmt-8.html और https://docs.oracle.com/javase/8/docs/technotes/guides/troubleshoot/tooldescr007.html देखें), मैं देख सकता हूं कि विभिन्न श्रेणियों में JVM कितनी मेमोरी का उपयोग कर रहा है।लिनक्स प्रक्रिया निवासी सेट आकार की तुलना में एक JVM रिपोर्ट अधिक प्रतिबद्ध स्मृति क्यों करती है?
JDK 1.8.0_45 शो पर मेरा ऐप:
Native Memory Tracking: Total: reserved=4023326KB, committed=2762382KB - Java Heap (reserved=1331200KB, committed=1331200KB) (mmap: reserved=1331200KB, committed=1331200KB) - Class (reserved=1108143KB, committed=64559KB) (classes #8621) (malloc=6319KB #17371) (mmap: reserved=1101824KB, committed=58240KB) - Thread (reserved=1190668KB, committed=1190668KB) (thread #1154) (stack: reserved=1185284KB, committed=1185284KB) (malloc=3809KB #5771) (arena=1575KB #2306) - Code (reserved=255744KB, committed=38384KB) (malloc=6144KB #8858) (mmap: reserved=249600KB, committed=32240KB) - GC (reserved=54995KB, committed=54995KB) (malloc=5775KB #217) (mmap: reserved=49220KB, committed=49220KB) - Compiler (reserved=267KB, committed=267KB) (malloc=137KB #333) (arena=131KB #3) - Internal (reserved=65106KB, committed=65106KB) (malloc=65074KB #29652) (mmap: reserved=32KB, committed=32KB) - Symbol (reserved=13622KB, committed=13622KB) (malloc=12016KB #128199) (arena=1606KB #1) - Native Memory Tracking (reserved=3361KB, committed=3361KB) (malloc=287KB #3994) (tracking overhead=3075KB) - Arena Chunk (reserved=220KB, committed=220KB) (malloc=220KB)
यह आवंटित ढेर के 1.3GB और लगभग 1.2GB आवंटित धागा ढेर के (कई धागे का प्रयोग करके) सहित प्रतिबद्ध स्मृति, की 2.7GB को दर्शाता है।
हालांकि, ps ax -o pid,rss | grep <mypid>
या top
चलाते समय यह केवल 1.6 जीबी RES/rss
निवासी स्मृति दिखाता है। जांच की जा रही स्वैप कहते प्रयोग में कोई भी: जब केवल 1.6GB निवासी है
free -m total used free shared buffers cached Mem: 129180 99348 29831 0 2689 73024 -/+ buffers/cache: 23633 105546 Swap: 15624 0 15624
क्यों JVM 2.7GB स्मृति संकेत मिलता है के लिए प्रतिबद्ध है? बाकी कहाँ गए थे?
संभावित डुप्लिकेट [क्या आरएसएस आरक्षित ट्रैक करता है या स्मृति का उपयोग करता है?] (Http://stackoverflow.com/questions/31071019/does-rss-tracks-reserved-or-commited-memory) – the8472
नहीं। वह प्रश्न और उत्तर आरक्षित-लेकिन-प्रतिबद्ध स्मृति पर चर्चा नहीं करता है और प्रतिबद्ध और निवासी स्वैप के बीच का अंतर कहता है, जिसे मैंने बताया है, यहां मामला नहीं है। –
उत्तर में प्रतिबद्ध बनाम निवासी के बीच मतभेद भी शामिल हैं। – the8472