NFS Performance Tuning for HP-UX 11.0 and 11i Systems

nfs performance tuning for hp-ux 11.0 and 11i systems page 34
Notes:
Page 34July 22, 2002
Copyright 2002 Hewlett- Packard Company
How do they work in the WRITE case?
1. Process writes data to buffer cache. If biods are not running, the
writing process sends the data to the server and waits for a reply.
2. If biods are running, the writing process does not block. It continues
writing data to buffer cache while the biods work to drain the buffer
cache, sending data to the NFS server and waiting for replies.
3. While the writing process will not block during the write() system call
(assuming buffer cache space is available), it will block when it
needs to flush, sync, or close the file. In these cases the process
blocks until all data has been successfully written to the server.
biod
GOAL: Keep the client’s buffer cache drained so that when a writing
process flushes a file it only needs to block a short amount of
time while any remaining data is posted to the NFS server
When the client needs to write data to an NFS mounted file, assuming the client is
writing in asynchronous mode (which is the default behavior), the client will write
the data to its local buffer cache. Once the buffer cache data has been written, if
no biod daemons are running then the process writing the data will generate an
NFS write request in its own process context to push the data to the NFS server.
If biods are present then the writing process will post its data to the local buffer
cache and continue writing while the data is sent to the NFS server by a biod.
Several more biods continue to pull data from the client’s buffer cache and send it
to the server, allowing the writing process to continue writing data to buffer cache
as quickly as it can. While the writing process itself will not block during the actual
write() system call, it will block when it needs to flush, sync, or close the file. In
these cases the process sleeps until all data has been written to the server.
Therefore, the goal of the biods in the write case is to drain the client’s buffer cache
so that when the writing process is finished writing and needs to flush, sync, or
close the file, it only needs to block for a short amount of time while any remaining
data is sent to the server.