[Java lista] tomcat 5 thread probléma

Tamás Magyar magyusz at gmail.com
2009. Feb. 13., P, 13:33:54 CET


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
>


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