2016-06-20 11 views
8

वहाँ रहे हैं किसी भी उपकरण है कि Metaspace एक Java8 हॉटस्पॉट वीएम से डंप प्राप्त करने में सक्षम हैं?कैसे Java8 Metaspace डंप (नहीं हीप डंप) प्राप्त करने के लिए

+3

आप किस फॉर्म में यह प्राप्त करना चाहते हैं और इसके लिए क्या करना चाहते हैं? ध्यान दें कि मेटास्पेस में डेटा जावा ऑब्जेक्ट्स नहीं है। शायद आप HotSpot आंतरिक संरचनाओं में रुचि नहीं रखते हैं, लेकिन किसी और चीज में। – apangin

+0

हमारे पास एक एप्लिकेशन है मैक्सपेस ओओएम त्रुटि मैक्समैटस्पेस साइज के 1 जी के साथ, और मैं जानना चाहता था कि मेटास्पेस यादों का उपयोग कैसे किया जा रहा है। – czh

उत्तर

9

ऐसा लगता है कि आपको कक्षा लोडिंग रिसाव का सामना करना पड़ता है।
उपयोग

  • jmap -clstats PID वर्ग लोडर आँकड़े डंप करने के लिए;
  • jcmd PID GC.class_stats प्रत्येक लोड कक्षा के स्मृति उपयोग के बारे में विस्तृत जानकारी मुद्रित करने के लिए। उत्तरार्द्ध को -XX:+UnlockDiagnosticVMOptions की आवश्यकता है।

हीप डंप भी मदद करेगा, क्योंकि मेटास्पेस के प्रत्येक वर्ग में ढेर में java.lang.Class उदाहरण है।

+0

हाय अपांगिन, आपकी सलाह के लिए धन्यवाद। मैं jmap -dump कमांड का उपयोग करके पूरे ढेर को डंप करने में सक्षम था, हालांकि मैं डंप फ़ाइल का विश्लेषण करने के लिए jhat कमांड चलाने के लिए संघर्ष कर रहा हूं। हीप डंप लगभग 5 जीबी है, और जाट पूरा होने के बिना 2 घंटे चल रहा है, क्या यह सामान्य है? – czh

+0

जाट अंततः लगभग 2 घंटे चलने के बाद हीप स्पेस ओओएम त्रुटि के साथ समाप्त हो गया। – czh

+1

@czh [ग्रहण स्मृति विश्लेषक] (http://www.eclipse.org/mat/) बड़े ढेर डंप के साथ भी ठीक काम करता है। – apangin

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