Hi Maxim,
We need a heap dump to chase this down. We had a leak (identified in the
release notes) when we shipped. I found that it was about 1MB per hour under
load on a dual 3.0Ghz Xeon (no hyperthreading).
I was using Derby at the time. I've been changing the tranQL connection manager
and haven't seen it appear but I haven't specifically done a long run like I
did before.
It would be helpful to coordinate efforts on what areas your focusing on. I
think the memory leak would be excellent. Can you tell me a bit about your test
setup? I have a couple of engineering boxes you guys provided and they are
outlined in the note you referred to earlier.
Also, can you do your testing with jRockit ? I think the information on another
JVM would be a good thing.
Also, what TZ are you located in? I'm UTC -5 (Raleigh, NC)
Also, check us out on Irc irc://irc.freenode.net:6667 Channel #geronimo
Maxim Berkultsev wrote:
Hi, Matt!
I've tried
java -server -XX:-PrintTenuringDistribution -XX:+PrintGCDetails
-XX:+PrintGCTimeStamps -XX:+PrintHeapAtGC -jar ./bin/server.jar
since it seems too long to wait for the problem so I've limited VM with
the default heap size. Please see a portion of log below.
It looks as if the heap was taken up intensively.
For an OutOfMemory problem please see the stack trace further.
Best regards,
Maxim Berkultsev, Intel Middleware Products Division
------------------
.......
535.751: [Tenured[Unloading class
sun.reflect.GeneratedSerializationConstructorAccessor461]:
58303K->58303K(58304K), 0.4943219 secs] 64355K->64332K(64832K), [Perm :
31861K->31855K(32000K)] Heap after GC invocations=1056:
Heap def new generation total 6528K, used 6028K [0x10010000, 0x10720000,
0x10720000)
eden space 5824K, 99% used [0x10010000, 0x105bffd8, 0x105c0000)
from space 704K, 29% used [0x10670000, 0x106a3220, 0x10720000)
to space 704K, 0% used [0x105c0000, 0x105c0000, 0x10670000)
tenured generation total 58304K, used 58303K [0x10720000, 0x14010000,
0x14010000)
the space 58304K, 99% used [0x10720000, 0x1400fff8, 0x14010000, 0x14010000)
compacting perm gen total 32000K, used 31855K [0x14010000, 0x15f50000,
0x18010000)
the space 32000K, 99% used [0x14010000, 0x15f2bdb8, 0x15f2be00, 0x15f50000)}
, 0.4963221 secs]
17:10:00,921 WARN [ServletHandler] Error for
/daytrader/servlet/PingServlet2MDBQueue java.lang.OutOfMemoryError
------------------
19:42:39,401 ERROR [Log] Error: PingServlet2MDBQueue.doGet(...):exception
posting message to TradeBrokerQueue destination
19:42:39,401 ERROR [Log] Error: PingServlet2MDBQueue.doGet(...): error
java.util.ConcurrentModificationException
java.util.ConcurrentModificationException
at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:448)
at java.util.AbstractList$Itr.next(AbstractList.java:419)
at java.util.AbstractCollection.remove(AbstractCollection.java:254)
at org.activemq.TransactionContext.removeSession(TransactionContext.java
:116)
at org.activemq.ra.RATransactionContext.removeSession(
RATransactionContext.java:57)
at org.activemq.ActiveMQSession.doClose(ActiveMQSession.java:466)
at org.activemq.ActiveMQSession.close(ActiveMQSession.java:447)
at org.activemq.ra.JMSSessionProxy.cleanup(JMSSessionProxy.java:87)
at org.activemq.ra.JMSSessionProxy.close(JMSSessionProxy.java:76)
at org.apache.geronimo.samples.daytrader.web.prims.PingServlet2MDBQueue.
doGet(PingServlet2MDBQueue.java:127)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:595)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:688)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:428)
at org.apache.geronimo.jetty.JettyServletHolder.handle(
JettyServletHolder.java:99)
at org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(
WebApplicationHandler.java:830)
at org.mortbay.jetty.servlet.JSR154Filter.doFilter(JSR154Filter.java:170)
at org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(
WebApplicationHandler.java:821)
at org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(
WebApplicationHandler.java:471)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:568)
at org.mortbay.http.HttpContext.handle(HttpContext.java:1530)
at org.mortbay.jetty.servlet.WebApplicationContext.handle(
WebApplicationContext.java:633)
at org.mortbay.http.HttpContext.handle(HttpContext.java:1482)
at org.mortbay.http.HttpServer.service(HttpServer.java:909)
at org.mortbay.http.HttpConnection.service(HttpConnection.java:816)
at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:982)
at org.mortbay.http.HttpConnection.handle(HttpConnection.java:833)
at org.mortbay.http.SocketListener.handleConnection(SocketListener.java:244)
at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:357)
at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:534)
java.util.ConcurrentModificationException
at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:448)
at java.util.AbstractList$Itr.next(AbstractList.java:419)
at java.util.AbstractCollection.remove(AbstractCollection.java:254)
at org.activemq.TransactionContext.removeSession(TransactionContext.java
:116)
at org.activemq.ra.RATransactionContext.removeSession(
RATransactionContext.java:57)
at org.activemq.ActiveMQSession.doClose(ActiveMQSession.java:466)
at org.activemq.ActiveMQSession.close(ActiveMQSession.java:447)
at org.activemq.ra.JMSSessionProxy.cleanup(JMSSessionProxy.java:87)
at org.activemq.ra.JMSSessionProxy.close(JMSSessionProxy.java:76)
at org.apache.geronimo.samples.daytrader.web.prims.PingServlet2MDBQueue:
doGet(PingServlet2MDBQueue.java:127)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:595)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:688)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:428)
at org.apache.geronimo.jetty.JettyServletHolder.handle(
JettyServletHolder.java:99)
at org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(
WebApplicationHandler.java:830)
at org.mortbay.jetty.servlet.JSR154Filter.doFilter(JSR154Filter.java:170)
at org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(
WebApplicationHandler.java:821)
at org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(
WebApplicationHandler.java:471)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:568)
at org.mortbay.http.HttpContext.handle(HttpContext.java:1530)
at org.mortbay.jetty.servlet.WebApplicationContext.handle(
WebApplicationContext.java:633)
at org.mortbay.http.HttpContext.handle(HttpContext.java:1482)
at org.mortbay.http.HttpServer.service(HttpServer.java:909)
at org.mortbay.http.HttpConnection.service(HttpConnection.java:816)
at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:982)
at org.mortbay.http.HttpConnection.handle(HttpConnection.java:833)
at org.mortbay.http.SocketListener.handleConnection(SocketListener.java:244)
at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:357)
at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:534)
19:43:29,178 WARN [ServletHandler] Error for
/daytrader/servlet/PingServlet2MDBQueue
java.lang.OutOfMemoryError
19:43:30,365 WARN [HttpConnection] GET
/daytrader/servlet/PingServlet2MDBQueue HTTP/1.1
java.lang.OutOfMemoryError
19:43:31,412 WARN [JournalMessageStore] Message could not be added to long
term store: null
java.lang.OutOfMemoryError
----------
2006/3/29, Matt Hogstrom wrote:
In the tests I'm running I use the following:
java -server -Xmx2048m -Xms2048m -XX:-PrintTenuringDistribution
-XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintHeapAtGC -jar
/home/hogstrom/geronimo-1.0/bin/server.jar
I have not played too much with tuning the tenuring for the eden
sizes. Do you
have a stack trace indicating where you failed? OutOfMemory could mean
several
things.
Maxim Berkultsev wrote:
Hi, all!
I'm trying to make some performance evaluations of Geronimo with a help
of
JMeter.
It has appeared relatively simple to get Geronimo out of work. I've
tried to
load it with JMeter and a web primitive called **PingServlet2MDBQueue**
from
Daytrader bundle. I've created immediate load for 10 virtual users and
unlimited number of requests. Within a minute or two Geronimo stopped
responding to any request logging to console something like
...
18:32:56,180 WARN [ThreadedServer] EXCEPTION
java.lang.OutOfMemoryError
18:32:57,211 WARN [ThreadedServer] EXCEPTION
java.lang.OutOfMemoryError
...
Has someone used any specific VM options to run Geronimo smoothly? (As
for
me I've tried starting Geronimo with Java 1.4.2 Hotspot(TM) VM with
-server
option enabled).
Any advice or reference could be helpful. Thank you.
--
Best regards,
Maxim Berkultsev, Intel Middleware Products Division