2011-03-23 16 views
5

हमारे सर्वर एप्लिकेशन कुछ ग्राहकों पर चरम धीमेपन से ग्रस्त हैं। धीमेपन सर्वर द्वारा पुनरारंभ किया जाता है, हालांकि यह कुछ हफ्तों के बाद आता है।एसएसएल हैंडशेक समस्याएं

जावा सीपीयू हमेशा 100% (200% से बाहर) है, अन्य सभी पैरामीटर ठीक हैं। शोध से पता चला है कि अधिकांश सीपीयू "हैंडशेक कॉम्प्लेटेड नॉटिफी-थ्रेड" थ्रेड द्वारा खपत किया जाता है। टीसीपी डंप से हम देखते हैं कि एसएसएल हैंडशेक में 2-8 सेकंड लगते हैं, जो बहुत लंबा होता है, कभी-कभी टाइमआउट फेंक दिया जाता है।

हमारा एसएसएल प्रदाता बीएसएएफई है। सर्वर लिनक्स (सेंटोस), 640 एमबी ढेर, 2 कोर पर चलता है। हाइबरनेट, वसंत का उपयोग किया जाता है, ओरेकल स्थानीय डीबी

इस तरह के व्यवहार के कारण क्या हो सकते हैं? उन्हें खोजने के लिए क्या किया जा सकता है?

पीएस हम यातायात को हमारे ग्राहकों पर HTTP पर स्विच नहीं कर सकते हैं।

अपडेट: जावा प्रक्रिया के आउटगोइंग कनेक्शन आईपी टेबल के साथ अवरुद्ध होने पर सिस्टम पूरी तरह से मुक्त हो जाता है। ऐसी स्थिति में किस संसाधन को मुक्त किया जाता है? हम देखते हैं कि एसएसएल हैंडशेक अक्सर "सिफर स्पेक" चरण में फंस जाता है। क्लाइंट (मेरी जावा प्रक्रिया) एसएसएल सत्र का पुन: उपयोग करने का प्रयास करती है, लेकिन सर्वर पूरी तरह से स्टेटलेस है, यह हर बार नया सत्र उत्पन्न करता है।

+0

क्या आपने jvisualvm जैसे टूल के साथ एप्लिकेशन को प्रोफाइल किया है? – Davidann

+0

हमारे ग्राहकों (विशाल बैंक या निगम) को समझाना थोड़ा मुश्किल है कि हम उन्हें प्रोफाइल करना चाहते हैं, लेकिन हम इस दिशा में काम करते हैं। हम आमतौर पर प्रोफाइलिंग के लिए Yourkit का उपयोग करते हैं। क्या आपकी दृष्टि से jvisualvm बेहतर है? –

+0

क्या आपके पास टेस्ट सिस्टम हैं जिन्हें आप प्रोफाइल कर सकते हैं? – Davidann

उत्तर

1

आप जेबॉस के खिलाफ रिपोर्ट किए गए this issue पर एक नज़र डालना चाहते हैं (यकीन नहीं है कि आप क्या उपयोग कर रहे हैं)। उन मुद्दों से संकेत मिलता है कि HandshakeCompletedNotify-ThreadConcurrentModificationException फेंक सकता है, जो दौड़ की स्थिति का एक संभावित परिणाम है। अन्य परिणामों में कोड शामिल होता है जो एक अंतहीन पाश में फंस जाता है और एक सीपीयू चिपकाता है, जो आपके लक्षण की तरह लगता है। यदि आप इसका उपयोग कर रहे हैं, या समस्या की रिपोर्ट करने से संबंधित लाइब्रेरी जेबॉस को अपग्रेड करने पर विचार करेंगे। यह आपकी समस्या को ठीक कर सकता है।

+0

लक्षण आपके द्वारा वर्णित लोगों के समान दिखते हैं, लेकिन हम टॉमकैट का उपयोग करते हैं। –

0

आप जेएसई डिफ़ॉल्ट जेएसएसई कार्यान्वयन पर स्विच करने का प्रयास कर सकते हैं यह देखने के लिए कि कोई बीएसएफ़ई बग समस्या है या नहीं।

जेएसएसई डीबग कोड सक्षम करने से मूल्यवान भी हो सकता है (javax.net.debug संपत्ति)।

उन लिंक बहुत उपयोगी wrt JSSE

http://download.oracle.com/javase/1.5.0/docs/guide/security/jsse/JSSERefGuide.html#Debug

http://download.oracle.com/javase/1.5.0/docs/guide/security/jsse/ReadDebug.html

+0

शायद यह प्रोफाइलिंग के साथ हमारे अगले कदम है। Javax.net का उल्लेख करने के लिए धन्यवाद।डीबग संपत्ति, यह उपयोगी हो सकता है। –

0

आप अपने DNS खोज का विश्लेषण किया है डिबगिंग हैं। डीएसएस लुकअप धीमे होने पर एसएसएल हैंडशेक में अधिक समय लग सकता है, इसके लिए लुकअप के साथ-साथ रिवर्स-लुकअप को कुशल होने की आवश्यकता होती है।

+0

हां, हमने इस समस्या के बारे में सोचा है। DNS ठीक काम करता है। धन्यवाद। –

3

यह एक ज्ञात बग है जिसे सूर्य ने 6u10 में अगली पीढ़ी जावा प्लगइन को लुढ़काया था। अंततः ओरेकल ने जावा 7u2 में इसे ठीक किया, लेकिन कम से कम 6u33 के रूप में, इसे जावा 6 पर वापस नहीं भेजा है।

बग पर विवरण, # 7060523, here पाया जा सकता है।

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