[Java lista] tomcat 5 thread probléma
chico at tisztanet.hu
chico at tisztanet.hu
2009. Feb. 13., P, 13:29:14 CET
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)
További információk a(z) Javalist levelezőlistáról