2012-02-10 14 views
6

कृपया मुझे किसी स्थिति के साथ मदद करें। मेरे पास 4 जीबी रैम वाला सेंटोस है जिसमें टॉमकैट लगभग 1500 एमबी मेमोरी के साथ कॉन्फ़िगर किया गया है। कुछ बिंदुओं पर मेरी मशीन लटकती है जब यह अधिकतम थ्रेड कॉन्फ़िगर किया जाता है यानी 200. हमें इसे फिर से काम करने के लिए एप्लिकेशन सर्वर को पुनरारंभ करना होगा। पैरामीटर हैं:जेवीएम मेमोरी समस्याएं

JAVA_OPTS="-server -Xss128k -Xms2048m -Xmx2048m -XX:MaxPermSize=512m -XX:NewRatio=3 -XX:SurvivorRatio=6 -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -XX:CMSInitiatingOccupancyFraction=80 -Dfile.encoding=UTF8" 

JVM मेम विवरण नीचे चिपके हुए हैं। ढेर

 PSYoungGen      total 435456K, used 73027K [0x00000000e0c00000, 0x00000000fb580000, 0x0000000100000000) 
  eden space 435200K, 16% used [0x00000000e0c00000,0x00000000e5350c70,0x00000000fb500000) 
  from space 256K, 0% used [0x00000000fb540000,0x00000000fb540000,0x00000000fb580000) 
  to   space 256K, 88% used [0x00000000fb500000,0x00000000fb538600,0x00000000fb540000) 
 PSOldGen        total 741376K, used 132680K [0x00000000a2400000, 0x00000000cf800000, 0x00000000e0c00000) 
  object space 741376K, 17% used [0x00000000a2400000,0x00000000aa592030,0x00000000cf800000) 
 PSPermGen       total 22912K, used 22880K [0x0000000092400000, 0x0000000093a60000, 0x00000000a2400000) 
  object space 22912K, 99% used [0x0000000092400000,0x0000000093a58088,0x0000000093a60000) 

Code Cache  [0x00002aaaab021000, 0x00002aaaab311000, 0x00002aaaae021000) 
 total_blobs=1033 nmethods=670 adapters=317 free_code_cache=47372736 largest_free_block=12096 

0x00002aaab41b7800 JavaThread ""http-apr-80"-exec-214" daemon [_thread_blocked, id=2636, stack(0x0000000043b06000,0x0000000043b27000)] 
+0

क्या इस प्रश्न के लिए कोई प्रोग्रामिंग घटक है, या यह पूरी तरह से टोमकैट को कॉन्फ़िगर करने के बारे में है? – NPE

+0

हमने प्रोग्रामिंग पर निर्भर घटकों की भी जांच की है। ढेर डंप और झाट का उपयोग करके बनाई गई वस्तुओं का विश्लेषण किया। मैं स्मृति आकार के परिभाषित और जीसी ट्यूनिंग के बारे में बिल्कुल अनिश्चित हूं। तो दूसरों के साथ इसे फिर से देखना चाहता था। – Ashutosh

+0

एक थ्रेड डंप बनाएं, जबकि यह देखने के लिए अटक गया है कि वे क्या कर रहे हैं। शायद कुछ डेडलॉक्स हैं। आप इस जानकारी को इकट्ठा करने के लिए jconsole का उपयोग कर सकते हैं। – mrembisz

उत्तर

4

मुझे नहीं लगता कि तुम यहाँ एक स्मृति समस्या है है।

मुझे लगता है कि तुम सिर्फ बिल्ला के आंतरिक थ्रेड पूल में उपलब्ध धागे से बाहर भाग गया।
टोमकैट अब अनुरोधों को संसाधित नहीं कर सकता है अगर इसके आंतरिक अनुरोध प्रसंस्करण थ्रेड पूल में कुछ और काम करने के लिए कोई मुक्त धागा नहीं है और बस इस स्थिति में परिवर्तन (शायद हमेशा के लिए) तक इंतजार कर रहा है।

मेरा अनुमान है कि कम से कम एक सर्वलेट/jsp अपने वेब अनुप्रयोगों में से एक कभी नहीं पूरा करता है की/रिटर्न है।

इसकी पुष्टि करने के लिए थ्रेड डंप लें और सॉफ़्टवेयर के उस हिस्से को आसानी से पहचानने के लिए जो इसका कारण बनता है।

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