[Java lista] tomcat 5 thread probléma

István Viczián viczian.istvan at gmail.com
2009. Feb. 13., P, 16:07:08 CET


Magyusz, a szívemből beszélsz. :) Ezt akartam én is hozzátenni.

Viczi

2009/2/13 Tamás Magyar <magyusz at gmail.com>:
> JMeterrel könnyen reprodukálható. Nio http connector azt hiszem csak a
> 6-os Tomcatben jelent meg, de az sokat segítene, nem kéne hirtelen 100
> szál 100 egyidejű kérés kiszolgálásához.
>
> Nem ellenjavallt a webappon belüli thread gyártás, ezt már többször
> kitárgyaltuk a listán.
> A saját threadeket érdemes Executorral kiváltani, hogy Thread poolt
> használjanak.
>
> Magyusz
>
> 2009/2/13  <chico at tisztanet.hu>:
>> Sziasztok!
>>
>> Tomcat 5 alatt az alábbi üzenet jön néhány órai használat után:
>>
>> "java.lang.OutOfMemoryError: unable to create new native thread"
>>
>> A webapp-on belül thread-ek jönnek létre és szűnnek meg ciklikusan,
>> amelyekben  a rendszer kommunikál a kliensekkel (tudom, nem ajánlott a
>> webappon belüli thread gyártás, de ez egy régebben írt webapp...).
>>
>> A rendszer így évek óta működik, 5/12 -es üzemben.
>> Most viszont a kliensek száma hirtelen 500-600 körülire nőtt (egy
>> időben), és jött a hiba.
>> A tomcat/server.xml -ben a maxThreads növelése nem hozott javulást.
>>
>> A kérdésem: hol kell/lehet állítani/lekérdezni, hogy az
>> oprendszer/tomcat/jvm?  biztosítson megfelelő számú thread-et?
>> (a webapp módosítása most nem nagyon lehetséges)
>>
>> Környezet:
>> Solaris 10, Java 1.5.0.14, Apache Tomcat/5.5.17
>> CATALINA_OPTS:
>> -Dencoding=UTF-8 -Xms32m -Xmx96m
>> -XX:MaxPermSize=96m -XX:+PrintGCDDtails -XX:NewSize=16m -verbose:gc
>> -XX:CompileThreshold=30000 -XX:+UseParallelGC -XX:+UseBoundThreads
>> -Xconcurrentio
>>
>> A max memória értéket soha sem éri el (ezt már megmérték).
>>
>> Nekem a hibát reprodukálnom is kellene Linux-os környezetben (Ubuntu),
>> úgyhogy ha van valakinek ötlete, hogy hogyan lehet ezt megtenni, ne
>> kíméljen.
>>
>> Üdv,
>> Chico
>>
>> ------------------------------------------
>> A stacktrace:
>>
>> java.lang.OutOfMemoryError: unable to create new native thread
>>        at java.lang.Thread.start0(Native Method)
>>        at java.lang.Thread.start(Thread.java:574)
>>        at
>> com.mics.net.dispatcher.client.router.doGet(router.java:608)
>>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
>>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
>>        at
>> org.apache.catalina.servlets.InvokerServlet.serveRequest(InvokerServlet.java:419)
>>        at
>> org.apache.catalina.servlets.InvokerServlet.doGet(InvokerServlet.java:133)
>>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
>>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
>>        at
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
>>        at
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>        at
>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
>>        at
>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
>>        at
>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
>>        at
>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
>>        at
>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
>>        at
>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
>>        at
>> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
>>        at
>> org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
>>        at
>> org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
>>        at
>> org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
>>        at
>> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
>>        at java.lang.Thread.run(Thread.java:595)
>>
>>
>>
>>
>>
>> _______________________________________________
>> Javalist mailing list
>> Javalist at javagrund.hu
>> http://javagrund.hu/mailman/listinfo/javalist
>>
> _______________________________________________
> Javalist mailing list
> Javalist at javagrund.hu
> http://javagrund.hu/mailman/listinfo/javalist
>


További információk a(z) Javalist levelezőlistáról