we使用jetty搭建ssl监听的server,运行一段时间后出现OutOfMemory, dump出来后看到有上百万个CachedInfo 没有回收.class org.mortbay.jetty.security.SslSocketConnector$CachedInfo
请问,这是怎么回事? 怎样才能让CachedInfo得到回收?

解决方案 »

  1.   

    以下是Out of Memory时的log,上面的class是我用jmap dump出来的jetty的内存使用情况.
    1580836096 [btpool0-24456] DEBUG - PATH=/opt/base2a4c.txt
    1580839315 [btpool0-23895] DEBUG - MISC handle this URL GET:http:/wmuf0062.dat
    1580839315 [btpool0-23895] DEBUG  - PATH=/wmuf/wmuf0062.dat
    Exception in thread "btpool0-24550" java.lang.OutOfMemoryError: Java heap space
    Exception in thread "btpool0-24279" java.lang.OutOfMemoryError: Java heap space
    Exception in thread "btpool0-23629" java.lang.OutOfMemoryError: Java heap space
    Exception in thread "btpool0-24867" java.lang.OutOfMemoryError: Java heap space
    Exception in thread "btpool0-23775" java.lang.OutOfMemoryError: Java heap space
    Exception in thread "btpool0-23333" java.lang.OutOfMemoryError: Java heap space
    Exception in thread "btpool0-24131" java.lang.OutOfMemoryError: Java heap space
    Exception in thread "btpool0-23686" java.lang.OutOfMemoryError: Java heap space
    Exception in thread "btpool0-23639" java.lang.OutOfMemoryError: Java heap space
    Exception in thread "btpool0-22175" java.lang.OutOfMemoryError: Java heap space
    1581957747 [btpool0-24411] INFO  - Register Request: https://192.168.1.42/verify-200
    2012-06-19 13:09:46.737::WARN:  Error for /verify
    java.lang.OutOfMemoryError: Java heap space
    2012-06-19 13:19:53.495::WARN:  EXCEPTION 
    java.lang.OutOfMemoryError: Java heap space
    Exception in thread "btpool0-23988" java.lang.OutOfMemoryError: Java heap space
    2012-06-19 13:20:22.311::WARN:  EXCEPTION 
    java.lang.OutOfMemoryError: Java heap space
    2012-06-19 13:20:35.679::WARN:  EXCEPTION 
    java.lang.OutOfMemoryError: Java heap space
    2012-06-19 13:20:47.947::WARN:  EXCEPTION 
    java.lang.OutOfMemoryError: Java heap space
    Exception in thread "btpool0-23814" java.lang.OutOfMemoryError: Java heap space
    2012-06-19 13:21:06.374::WARN:  EXCEPTION 
    java.lang.OutOfMemoryError: Java heap space
    Exception in thread "btpool0-24021" java.lang.OutOfMemoryError: Java heap space
    2012-06-19 13:21:26.421::WARN:  EXCEPTION 
    java.lang.OutOfMemoryError: Java heap space
    2012-06-19 13:21:32.386::WARN:  EXCEPTION 
    java.lang.OutOfMemoryError: Java heap space
    Exception in thread "btpool0-24802" java.lang.OutOfMemoryError: Java heap space
      

  2.   

    java.lang.OutOfMemoryError: Java heap space
            at com.sun.org.apache.xerces.internal.dom.DeferredDocumentImpl.createChunk(DeferredDocumentImpl.java:1966)
            at com.sun.org.apache.xerces.internal.dom.DeferredDocumentImpl.ensureCapacity(DeferredDocumentImpl.java:1859)
            at com.sun.org.apache.xerces.internal.dom.DeferredDocumentImpl.createNode(DeferredDocumentImpl.java:1876)
            at com.sun.org.apache.xerces.internal.dom.DeferredDocumentImpl.createDeferredDocument(DeferredDocumentImpl.java:225)
            at com.sun.org.apache.xerces.internal.parsers.AbstractDOMParser.startDocument(AbstractDOMParser.java:845)
            at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.startDocument(XMLDTDValidator.java:701)
            at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.startEntity(XMLDocumentScannerImpl.java:540)
            at com.sun.org.apache.xerces.internal.impl.XMLVersionDetector.startDocumentParsing(XMLVersionDetector.java:170)
            at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:812)
            at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764)
            at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:148)
            at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:250)
            at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:292)
            at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:98)
            at com.cpsecure.update.ProtocolHandler_0_1.requestParse(Unknown Source)
            at com.cpsecure.update.UpdateServlet.doPost(Unknown Source)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
            at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
            at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362)
            at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
            at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
            at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:729)
            at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
            at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:206)
            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:324)
            at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
            at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:843)
            at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:647)
            at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:205)
      

  3.   

    把环境内存改一下。。 -Xms128m -Xmx1024M 试试