LinuxThreadingModel

    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.

     

    NPTL

     

    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 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.

     

     

     

     

    Thread dump

     

    To get a thread dump of each thread, see StackTrace

     

     

     

     

    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: