Have you considered pooling the connections?  You'll probably find the
performance of any Java app will degrade with that many threads...


Ken Ringdahl wrote:
> 
> I'm running a load test that intends to throw on the order of several
> thousand connections at a 2 node broker system with failover (ActiveMQ
> 4.1.1) configured for tcp transport only.  However, I'm just using a
> single broker node right now and am getting out of memory errors at about
> 400 connections.  I've set the Xmx to 1024M and the memory is only ~110 MB
> when  this error occurs in the log.  I've pasted the exceptions below. 
> The latter 2 exceptions do not immediately follow the first.  They come
> maybe a minute or so later.  I've tried setting the preFetch to 1 in case
> it's keeping messages in memory.  But, to be honest, my test doesn't send
> messages until all of the connections have been established.  Any
> suggestions as to what might be the problem here?
> 
> 
> 
> jvm 1    | Exception in thread "ActiveMQ Transport Server:
> tcp://localhost:61616" java.lang.OutOfMemoryError: unable to create new
> native thread
> jvm 1    |      at java.lang.Thread.start0(Native Method)
> jvm 1    |      at java.lang.Thread.start(Thread.java:574)
> jvm 1    |      at
> org.apache.activemq.thread.DedicatedTaskRunner.<init>(DedicatedTaskRunner.java:45)
> jvm 1    |      at
> org.apache.activemq.thread.TaskRunnerFactory.createTaskRunner(TaskRunnerFactory.java:77)
> jvm 1    |      at
> org.apache.activemq.broker.TransportConnection.<init>(TransportConnection.java:174)
> jvm 1    |      at
> org.apache.activemq.broker.jmx.ManagedTransportConnection.<init>(ManagedTransportConnection.java:55)
> jvm 1    |      at
> org.apache.activemq.broker.jmx.ManagedTransportConnector.createConnection(ManagedTransportConnector.java:56)
> jvm 1    |      at
> org.apache.activemq.broker.TransportConnector$1.onAccept(TransportConnector.java:147)
> jvm 1    |      at
> org.apache.activemq.transport.tcp.TcpTransportServer.run(TcpTransportServer.java:167)
> jvm 1    |      at java.lang.Thread.run(Thread.java:595)
> jvm 1    | Exception in thread "RMI RenewClean-[172.16.105.110:36883]"
> java.lang.OutOfMemoryError: unable to create new native thread
> jvm 1    |      at java.lang.Thread.start0(Native Method)
> jvm 1    |      at java.lang.Thread.start(Thread.java:574)
> jvm 1    |      at
> sun.rmi.transport.tcp.TCPChannel.free(TCPChannel.java:321)
> jvm 1    |      at sun.rmi.server.UnicastRef.free(UnicastRef.java:395)
> jvm 1    |      at sun.rmi.server.UnicastRef.done(UnicastRef.java:412)
> jvm 1    |      at sun.rmi.transport.DGCImpl_Stub.dirty(Unknown Source)
> jvm 1    |      at
> sun.rmi.transport.DGCClient$EndpointEntry.makeDirtyCall(DGCClient.java:328)
> jvm 1    |      at
> sun.rmi.transport.DGCClient$EndpointEntry.access$1600(DGCClient.java:144)
> jvm 1    |      at
> sun.rmi.transport.DGCClient$EndpointEntry$RenewCleanThread.run(DGCClient.java:539)
> jvm 1    |      at java.lang.Thread.run(Thread.java:595)
> jvm 1    | Exception in thread "ActiveMQ Journal Checkpoint Worker"
> java.lang.OutOfMemoryError: unable to create new native thread
> jvm 1    |      at java.lang.Thread.start0(Native Method)
> jvm 1    |      at java.lang.Thread.start(Thread.java:574)
> jvm 1    |      at
> edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor.addIfUnderCorePoolSize(ThreadPoolExecutor.java:429)
> jvm 1    |      at
> edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:857)
> jvm 1    |      at
> org.apache.activemq.store.journal.JournalPersistenceAdapter.doCheckpoint(JournalPersistenceAdapter.java:376)
> jvm 1    |      at
> org.apache.activemq.store.journal.JournalPersistenceAdapter$2.iterate(JournalPersistenceAdapter.java:129)
> jvm 1    |      at
> org.apache.activemq.thread.DedicatedTaskRunner.runTask(DedicatedTaskRunner.java:101)
> jvm 1    |      at
> org.apache.activemq.thread.DedicatedTaskRunner.access$000(DedicatedTaskRunner.java:25)
> jvm 1    |      at
> org.apache.activemq.thread.DedicatedTaskRunner$1.run(DedicatedTaskRunner.java:39)
> 
> 

-- 
View this message in context: 
http://www.nabble.com/ActiveMQ-Transport-Server-OutOfMemoryError-while-running-load-test-tf4697790s2354.html#a13737559
Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Reply via email to