Fwd: Tomcat6 port keeps locking up??

Jeremy Chadwick freebsd at jdc.parodius.com
Fri Sep 17 08:56:24 UTC 2010

On Fri, Sep 17, 2010 at 11:37:13AM +0300, Kaya Saman wrote:
> This is a snapshot of the 'top' command that shows Java at 100%.....
> Basically it means that the system is more in this state then
> functional and I can't understand why!
> Can anyone help me??

You should probably spend a bit of time in a debugger (specifically a
Java debugger) figuring out if your code is spinning or not.  Debugging
anything under Tomcat/Java is a PITA, and I say that from experience.
I would advocate you open up a bug/report with the Apache folks and
provide them this information, especially if the only thing you're
seeing problems with is Tomcat (and not other software).

For example -- at my workplace we run Solaris 10, with Tomcat heavily
used for different purposes (mainly a translation layer between HTTP and
Cisco ICR protocols).  For years we saw a problem where a Tomcat thread
would take up 100% CPU (ex. on a 4-core machine, 25% CPU) when a Cisco
PG would disconnect/reconnect repetitively (common during network
problems).  The problem turned out to be two fold: a bug in Tomcat, and
some improper code on our part, resulted in Tomcat spinning.  We did not
open up a SunSolve case because there wouldn't have been a point to it.

> Otherwise I will have to start looking at migrating this service
> away from BSD and much more costlier option of Nexenta based on
> OpenSolaris, but hogs RAM as uses ZFS natively meaning min 4GB
> unlike my FreeBSD build with ZFS and UFS2 using 4GB for that many
> processes and 7 jails!

I don't think you understand how Solaris's VM behaves with ZFS.  It
behaves very differently than FreeBSD.  On Solaris/OpenSolaris with ZFS,
you'll see the ARC taking up as much memory as possible -- but unlike
FreeBSD (AFAIK), when a userland or kernel application requires more
memory, the Solaris kernel dynamically releases portions of the ARC.

We use ZFS on Solaris 10 exclusively at my day job (thousands of x86
servers).  When we moved to ZFS, we had to adjust our system memory
monitors to take into consideration ARC usage.

What I'm trying to say: on Solaris with ZFS, don't let "I don't see any
free memory in top or prstat" equate to "there isn't any free memory
available for applications".  Solaris handles this situation very,
*very* well; we have never seen any userland applications get starved
for memory as a result of using ZFS on all of our machines.

| Jeremy Chadwick                                   jdc at parodius.com |
| Parodius Networking                       http://www.parodius.com/ |
| UNIX Systems Administrator                  Mountain View, CA, USA |
| Making life hard for others since 1977.              PGP: 4BD6C0CB |

More information about the freebsd-ports mailing list