SUMMARY: BIOD on Classics

From: Patrick O'Callaghan (
Date: Mon Apr 12 1993 - 18:34:09 CDT

My question:

  poc> While wondering why my Classic seemed to slow down every once in a
  poc> while, I thought I'd check how many 'biod's it was running. The answer
  poc> turned out to be 'none'. However, on checking AnswerBook, the only
  poc> reference to 'biod' says it's not available on Solaris 2.1.

  poc> Anybody know why? Does it matter?

A goodly number of answers, basically all saying the same thing, which
is helpfull :-) It turns out that Solaris 2 uses kernel threads for
what SunOS used to use the kludgy biod hack for. Furthermore, these
threads are assigned on demand and go away when not needed. This is
the longest answer, from John A. Murphy <jam@philabs.Philips.Com>:

    biods are no longer used in Solaris 2.x They are replaced with kernel
    threads. I quote from a sunos 2.1 tutorial slide,

    Kernel Threads Replace biods
            The functionality of the blocking I/O daemons (biods) is replaced by
            the use of kernel threads. The traditional use for blocking I/O
            daemons was to provide a means for NFS I/O operations to wait for disk
            I/O without stopping other kernel execution.

            Asynchronous Writes - NFS write requests are queued on a per-mount
            point basis and are assigned to a kernel thread which performs the
            asynchronous write request on a per-mount point basis.

            The use of kernel resources are minimized by creating kernel threads
            on demand for asynchronous write requests up to a per-mount point high
            water mark of eight. No threads exist when there are no write
            requests outstanding. Synchronous read-aheads are still a standard
            feature and may become asynchronous in a future release.

            Traffic Bursts Reduced - In previous SunOS releases, systems
            generating many NFS requests would sometimes create bursts of requests
            up to their maximum number of biods, then wait for response packets
            back. This repetitive burst and wait patter characterized the
            operation of some file servers. With SunOS 5.1, each write requests
            is dynamically allocated a kernel thread, up to the per-mount point
            limit of eight. These threads are processed asynchronously. Thus the
            kernel can process write requests for some mount points while other
            mount point's requests are waiting.


Thanks also to;

From: leclerc@epsu10.Clamart.EST.SLB.COM (Leclerc Francois) said:
From: ups!kalli!kevin@fourx.Aus.Sun.COM (Kevin Sheehan {Consulting Poster Child})
From: David.Miner@East.Sun.COM (Dave Miner - ...sometimes you're the bug)

and of course the ever-attentive Hal Stern <stern@sunne.East.Sun.COM
(Hal Stern - NE Area Systems Engineer)>, who also had this to say:

    you may have *too many* threads running at once, and you
    may be hammering your server with huge bursts of requests.
    where there used to be 4 biod daemons, there are now (i think)
    8 threads per mount point. you can tune this down with
    a variable in /etc/system, but i need to look that up... :-)

Patrick O'Callaghan Internet:
Departamento de Computacion NICNAME: PO22
Universidad Simon Bolivar Tel: +058 (2) 906 3320, 906 3947
Apartado de Correos 89000 FAX: +058 (2) 93 71 28
Caracas, Venezuela "There is no Net but the Internet"

This archive was generated by hypermail 2.1.2 : Fri Sep 28 2001 - 23:07:44 CDT