2010-08-19 20 views
5

मैं जावा 6 पर चल रहे टॉमकैट 6 के खिलाफ लोड लोड कर रहा हूं। मैं जावा ढेर के हेपडम्प को इकट्ठा करना चाहता हूं जबकि टॉमकैट सर्वर लोड हो रहा है। मैं आमतौर पर अपने हेपडम्प एकत्र करने के लिए jmap -dump का उपयोग करता हूं।लोड के तहत जावा हेपडम्प एकत्रित

हालांकि, जब मैं ऐसा करने की कोशिश करता हूं जब टोमकैट एक उच्च लोड को संभालने में सक्षम होता है तो मुझे लगता है कि हेपडम्प संग्रह विफल हो जाता है।

क्या लोड के तहत प्रक्रिया से हीप डंप एकत्र करने के लिए सबसे अच्छा टूल jmap है? संभावित कारण क्या हैं जो japap को हेपडम्प एकत्र करने में विफल होने का कारण बनेंगे?

यदि jmap सबसे अच्छा उपकरण नहीं है - बेहतर क्या है?

यह जैप (या कुछ अन्य टूल) के लिए जावा प्रक्रिया के भीतर दुनिया को रोकने के लिए पूरी तरह स्वीकार्य है जबकि ढेर डंप लिया जाता है।

+1

क्या आपने वीएम को विजुअलVM संलग्न करने और इसका उपयोग करके हेपडम्प बनाने की कोशिश की है? –

+0

यह मेरे लिए आदर्श नहीं है क्योंकि मेरा टॉमकैट रिमोट लिनक्स सर्वर पर चल रहा है। विजुअलVM में रिमोट हीप डंप के लिए समर्थन शामिल है, लेकिन इसके लिए जम्मू शुरू होने पर जेएमएक्स पोर्ट खोला जाना चाहिए। – mchr

+0

http://stackoverflow.com/questions/20235802/ways-how-to-get-heap-dump-from-running-tomcat-7 में अधिक विस्तृत उत्तर हैं। – Vadzim

उत्तर

2

मैं ने पाया है कि एक JMX पोर्ट के साथ बिलाव चल मेरे VisualVM का उपयोग कर एक दूरस्थ heapdump लेने के लिए अनुमति देता है सफल होने की संभावना है। Jmap विफल होने पर यह मेरे लिए सफल रहा।

2

क्या लोड के तहत प्रक्रिया से एक हीप डंप एकत्र करने के लिए सबसे अच्छा टूल jmap है?

मुझे लगता है: नहीं, यह नहीं है। From this link:

नोट - यह उपयोगिता असमर्थित है और या JDK के भविष्य संस्करणों में उपलब्ध नहीं हो सकता है।

+0

क्या आप एक विकल्प की सिफारिश कर सकते हैं? – mchr

+0

नहीं, मुझे कभी भी ढेर डंप से निपटने की आवश्यकता नहीं थी, लेकिन मैंने jmap जानकारी की तलाश की, बस जिज्ञासा, भाग्य प्राप्त करें। – sourcerebels

2

मुझे यह भी मिला है कि jmap सुंदर स्वभावपूर्ण हो सकता है। यदि आपको समस्याएं आ रही हैं:

  • इसे फिर से प्रयास करें। यह अक्सर प्रयास के एक जोड़े के बाद एक ढेर डंप पाने के लिए प्रबंधन करता है, तो यह पहली बार में विफल रहता है
  • एफ विकल्प
  • -XX जोड़े का उपयोग करें: एक मानक विन्यास को सक्रिय रूप ढेर उदासीनता लेने के लिए के रूप में + HeapDumpOnOutOfMemoryError जब एक OOM त्रुटि
  • फेंक दिया जाता है
  • टॉमकैट को इंटरैक्टिव रूप से चलाएं और ctrl-break विकल्प पर हीप डंप जोड़ें। यह आपको थ्रेड डंप भी देता है, आपको शायद
  • यदि आपके ढेर का आकार विशेष रूप से बड़ा है और आपके पास दोहराने योग्य स्थिति है, तो अस्थायी रूप से आपके ढेर आकार को कम करें। यह संभाल करने के लिए बहुत आसान परिणामी फ़ाइल बनाता है, कम समय लगता है और अधिक
+0

इस उत्तर के लिए धन्यवाद - मैं अगली बार jmap को पुनः प्रयास करने का प्रयास करूंगा। मैंने Visualvm का उपयोग करने के बारे में अपना उत्तर पोस्ट किया है। – mchr

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