On Oct 16, 2008, at 9:05 PM, Matthew Laird wrote:
Caldarale, Charles R wrote:
"The only time I began to see the other cores actually start being
used is when I enabled multi-threaded GC. But that doesn't give
much improvement since the threads responding the web requests are
still all on the same core."
The most likely cause is internal synchronization in the webapp or
the database it references.
I've heard similar from someone else but I'm not sure how that's
possible. The app is not at all threaded, is 100% read-only from
the database (aside from creation of temp tables which have no
interaction between client requests) and the MySQL server is on
another machine humming along without any bottlenecks that I can see.
But of course I'm not a Java or JVM expert and have no idea what
kind of interlinks can exist between different client connections.
But to my knowledge they're all pretty straight forward handlers,
"get data from database, format, return to user"
I'm leaning more towards GC issues. I setup Tomcat on a 64-bit
machine and tried a few configurations:
-Xms4096M -Xmx4096M -server -XX:+DisableExplicitGC -XX:
+UseConcMarkSweepGC
-Xms4096M -Xmx4096M -server
-Xms2048M -Xmx2048M -server
As I went through each of those the app became more and more
sluggish and a single core finally in the last configuration did
this 100% CPU usage again.
Now, two issues I see. First, it's not being aggressive enough at
spreading the load among different cores. Second, GC does seem to
be an issue.
Unless I'm missing something, which I might be.
Thanks.
Make sure IP6 is not enabled if You are an IP4 network. We had
problems like You describe because of it.
---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]