biod(8nfs)biod(8nfs)Name
biod - Start NFS asynchronous block I/O daemons
Syntax
/etc/biod [ndaemons]
Description
The daemon starts the specified number of asynchronous block I/O daemons. The ndaemons argument tells how many asynchronous block I/O dae-
mons to start. The daemon is only useful to NFS clients. This command is used by NFS clients to perform read-ahead and write-behind of
remote file system blocks. Like the daemon, is normally invoked at boot time via the file.
Examples
/etc/biod 2 /* start two biod daemons */
See Alsoexports(5nfs), mountd(8nfs), nfsd(8nfs)biod(8nfs)
Check Out this Related Man Page
nfsiod(8) System Manager's Manual nfsiod(8)NAME
nfsiod, biod - The local NFS compatible asynchronous I/O daemon
SYNOPSIS
nfsiod [ numthreads ]
DESCRIPTION
The nfsiod daemon runs on an NFS compatible client machine and spawns several IO threads to service asynchronous I/O requests to its
server. The I/O threads improve performance of both NFS reads and writes. Both try to enlist the aid of an idle I/O thread. If none is
available, the process itself issues the request to the server and waits for the reply.
The optimum number of I/O threads to run depends on many variables, such as how quickly the client will be writing, how many files will be
accessed simultaneously, and the behaviour of the NFS server. For use with a Tru64 UNIX server, 7 is a good number of I/O threads for most
systems.
When reading, if the client believes the process is reading a file sequentially, it requests an I/O thread to read a block ahead of what
the process is currently requesting. If the readahead completes before the process asks for that block, then the subsequent read system
call for that data completes immediately and does not have to wait for the NFS request to complete. Read ahead will be triggered again so
the read may find that next block available as well.
When writing a file, the client takes the process's data, passes the request to an I/O thread and immediately returns to the process. If
the process is writing data faster than the network or server can process, then eventually all the I/O threads become busy and the process
has to handle a NFS write itself. This means the process has to wait until the server finishes the write. For Tru64 UNIX servers, the NFS
block size is 8Kb and UFS tries to cluster I/O 64Kbs at a time. If the client is running with 7 I/O threads, 8 write requests can be in
progress at once. This allows the client and server to write data 64Kbs at a time and is the reason for recommending 7 I/O threads.
Unlike nfsd, each client thread can use either UDP or TCP. However, if TCP mounts are active, the nfsiod process will time out, close idle
TCP connections, and acknowledge any connections closed by the server.
The nfsiod process is also responsible for syncing the access time and modify times for special files and named pipes (fifos). Because I/O
to these files does not go through the NFS server, NFS clients have to directly update the access time and modify time attributes.
The client threads are implemented as kernel threads; they are part of Process ID 0, not the nfsiod process. The ps axml command displays
idle I/O threads under PID 0. Idle threads will be waiting on nfsiod_wait. Therefore, if 7 I/O threads are configured, only 1 nfsiod
process is displayed in the output from the ps command, although 7 client threads are available to handle NFS requests.
FILES
Specifies the command path Specifies the file for logging NFS activity.
RELATED INFORMATION
Commands: nfsd(8), nfsstat(8)
Daemons: async_daemon(2) delim off
nfsiod(8)