2012-08-26 7 views
6

से अधिक हो गई है, मैं अपने सौर एप्लिकेशन के लिए लोड टेस्ट कर रहा हूं। सूचकांक में 200 मिलियन से अधिक दस्तावेज हैं। मैं डिफ़ॉल्ट जेटी सर्वर का उपयोग करता हूं और अधिकतम जेवीएम मेमोरी को 4 जीबी के रूप में स्थापित करता हूं। मेरे ऐप का परीक्षण करने के लिए, मैं 5000 टेक्स्ट प्रश्नों को बना देता हूं और उन्हें एक-एक करके सोलर को जारी करता हूं। हालांकि, लगभग 110 प्रश्नों के बाद, जेटी कंटेनर अपवाद फेंकता है।यह हर समय क्यों होता है? सोलर आउटऑफमेमरीरर जीसी ओवरहेड सीमा

ऐसा क्यों होता है? मैं इसे कैसे सुलझाऊं?

SEVERE: java.lang.OutOfMemoryError: GC overhead limit exceeded 
    at org.apache.lucene.util.AttributeImpl.clone(AttributeImpl.java:196) 
    at org.apache.lucene.util.AttributeSource$State.clone(AttributeSource.java:116) 
    at org.apache.lucene.util.AttributeSource$State.clone(AttributeSource.java:119) 
    at org.apache.lucene.util.AttributeSource.captureState(AttributeSource.java:349) 
    at org.apache.solr.highlight.TokenOrderingFilter.incrementToken(DefaultSolrHighlighter.java:595) 
    at org.apache.lucene.search.highlight.OffsetLimitTokenFilter.incrementToken(OffsetLimitTokenFilter.java:43) 
    at org.apache.lucene.analysis.CachingTokenFilter.fillCache(CachingTokenFilter.java:78) 
    at org.apache.lucene.analysis.CachingTokenFilter.incrementToken(CachingTokenFilter.java:50) 
    at org.apache.lucene.search.highlight.Highlighter.getBestTextFragments(Highlighter.java:225) 
    at org.apache.solr.highlight.DefaultSolrHighlighter.doHighlightingByHighlighter(DefaultSolrHighlighter.java:468) 
    at org.apache.solr.highlight.DefaultSolrHighlighter.doHighlighting(DefaultSolrHighlighter.java:379) 
    at org.apache.solr.handler.component.HighlightComponent.process(HighlightComponent.java:116) 
    at org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:194) 
    at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:129) 
    at org.apache.solr.core.SolrCore.execute(SolrCore.java:1368) 
    at org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:356) 
    at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:252) 
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212) 
    at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:399) 
    at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) 
    at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) 
    at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766) 
    at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450) 
    at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230) 
    at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114) 
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) 
    at org.mortbay.jetty.Server.handle(Server.java:326) 
    at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) 
    at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:928) 
    at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:549) 
    at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212) 
    at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) 
+0

क्या आपके पास 64 बिट ओएस और 64 बिट जावा संस्करण है? –

+0

'-Xss4m' का उपयोग कर जेवीएम स्टैक को बढ़ाने का प्रयास करें। –

+1

मैं इसे समझता हूं। यह निम्न स्तर के ल्यूसीन कैश के कारण हुआ था। मैं उस कोड को अक्षम करता हूं। फिर यह काम करता है। (हालांकि थोड़ा धीमा) – Xiao

उत्तर

1

स्पष्ट रूप से 4 जीबी रैम 200 एम इंडेक्स पर लोड टेस्ट को संभालने के लिए बहुत कम है। हमने 300 एम दस्तावेज़ों पर सोलर 4.2 के लिए प्रदर्शन परीक्षण 1K के औसत दस्तावेज़ आकार के साथ किया। लक्ष्य न्यूनतम मशीन कॉन्फ़िगरेशन को समझना था जिस पर हम स्थिर प्रतिक्रिया समय < 3 सेकंड गैर-पक्षीय प्रश्नों के लिए प्राप्त कर सकते हैं। 100 समवर्ती प्रश्नों के लिए हमारे परिणाम से पता चला कि न्यूनतम मशीन कॉन्फ़िगरेशन 8 सीपीयू कोर/15 जीबी रैम था। बेशक परिणाम कई कारकों के आधार पर अलग-अलग होंगे, हालांकि आप इसे अपने मशीन आकार के लिए अंगूठे के नियम के रूप में उपयोग कर सकते हैं।

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