Why do I see lots of java processes when I start JBoss on Linux?


This is the old threading model of Linux. Each thread on Linux is a process and ps, pstree or top doesn't understand this. The clue is that when you run top, they all have the same

memory allocation.




Linux 2.6 kernels and Redhat9+ use a new threading model called NPTL. This behaves

the same way as other operating systems. You only see one process.




Redhat9 / Enterprise Linux AS 3 (/ others?)


The backport of NPTL to Redhat9 is buggy. If you are using Redhat9, disable NPTL using:

export LD_ASSUME_KERNEL=<kernel-version>


The appropriate values for <kernel-version> can be found in the release notes of your distribution.


For instance, for EL3, search for "NPTL" in this page Additional information on what the LD_ASSUME_KERNEL setting does is described in this page:


JBoss recommends upgrading to the 2.6 kernel and avoiding 2.4 kernels with backports of NPTL as they have proven to be unstable in production Java-based systems.





Thread dump


To get a thread dump of each thread, see StackTrace





Note: According to this excellent serie of articles on NPTL, other Linux distributions also have issues with their backport on 2.4 kernels. Check your distribution release notes for details.


Referenced by: