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.


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]

Reply via email to