2010-10-18 8 views
7

मेरे पास एक टोमकैट विंडोज सेवा के रूप में चल रहा है, और जिन्हें जाना जाता है कि वे जेस्टैक के साथ अच्छी तरह से काम नहीं करते हैं। jconsole दूसरी तरफ अच्छी तरह से काम कर रहा है, और मैं अलग-अलग धागे के ढेर देख सकता हूं (मैं इसे एक्सेस करने के लिए "लोकलहोस्ट: पोर्ट" से कनेक्ट कर रहा हूं)।मैं जेएमएक्स के माध्यम से थ्रेड डंप कैसे बना सकता हूं?

मैं सभी थ्रेड स्टैक को फ़ाइल में डंप करने के लिए jconsole या इसी तरह के टूल का उपयोग कैसे कर सकता हूं? (jstack के समान)

उत्तर

5

आप ThreadMXBean प्रबंधन इंटरफ़ेस का उपयोग कर सकते हैं।

यह FullThreadDump कक्षा पूर्ण थ्रेड डंप प्राप्त करने की क्षमता को प्रदर्शित करती है और जेएमएक्स का उपयोग करके दूरस्थ रूप से डेडलॉक का पता लगाती है।

3

यहाँ एक और कोड नमूना है कि एक फाइल करने के लिए एक ढेर डंप लिखेंगे है:

http://pastebin.com/zwcKC0hz

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

4

आजकल आप जेएमएक्स के माध्यम से अपने रिमोट जेवीएम से कनेक्ट करने और थ्रेड डंप बनाने के लिए jvisualvm टूल का उपयोग कर सकते हैं। यदि यह उपलब्ध

Java VisualVM

+1

यह अविश्वसनीय रूप से धीमा है :( –

1

यह मददगार होगा यदि आप एक उड़ान रिकॉर्डिंग ले JVM व्यवहार पर एक गहरी दृश्य दिखाने के लिए, विशेष रूप से पर गर्म तरीके ध्यान केंद्रित कर रहा था पता नहीं है।

आमतौर पर, आधे घंटे की रिकॉर्डिंग पर्याप्त है। एक रिकॉर्डिंग को गति प्रदान करने के लिए, आप मशीनों के लिए लॉग इन करना होगा, और निम्न आदेश जारी करते हैं:

जावा हॉटस्पॉट 1.8.x उपयोग कर रहे हैं:

$ JAVA_HOME/bin/jcmd VM.unlock_commercial_features $ JAVA_HOME/bin/jcmd JFR.start अवधि = 1800 सेटिंग्स = प्रोफ़ाइल फ़ाइल नाम =/tmp/recording.jfr

यदि जावा हॉटस्पॉट 1.7.x का उपयोग कर: निम्न को जोड़कर

संपादित अपने $ HOME/conf/wrapper.conf फ़ाइल जेवीएम स्टार्टअप पर पैरामीटर:

wrapper.java.additiona = - XX:। + UnlockCommercialFeatures wrapper.java.additional = - XX:। + FlightRecorder

(इसी स्थितीय संख्या के साथ बदलें)

फिर, अपने उदाहरणों को पुन: प्रारंभ कर दिया है। इसके बाद, इस मुद्दे को निम्न आदेश:

$ JAVA_HOME/bin/jcmd JFR.start अवधि = 1800 सेटिंग्स = प्रोफ़ाइल फ़ाइल नाम =/tmp/recording.jfr

उड़ान रिकॉर्डिंग wil पर एक फ़ाइल का उत्पादन/tmp/समाप्ति पर record.jfr।

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