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.
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 http://www.redhat.com/docs/manuals/enterprise/RHEL-3-Manual/release-notes/as-x86/
. Additional information on what the LD_ASSUME_KERNEL setting does is described in this page: http://people.redhat.com/drepper/assumekernel.html
.
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.
To get a thread dump of each thread, use ctrl-\ or kill -3 <jboss-pid>
Note: According to this excellent serie of articles on NPTL http://www.linuxdevices.com/articles/AT6753699732.html
, other Linux distributions also have issues with their backport on 2.4 kernels. Check your distribution release notes for details.
Referenced by:
JBossFrequentlyAskedQuestions
RedhatHints
JBossOperatingSystemSpecificIssues