z/OS Network File System Guide and Reference
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


Buffer usage and caching

z/OS Network File System Guide and Reference
SC23-6883-00

The bufhigh attribute specifies the below-the-bar virtual storage limits (in bytes) of allocated buffers (see Figure 1). When the bufhigh storage limit has been reached, a percentage of the buffers will be reclaimed, and the amount of reclamation is determined by the percentsteal attribute. z/OS NFS uses this buffer area to cache MVS data set information, thereby satisfying requests more efficiently.

Figure 1. Bufhigh utilization with percentsteal
Bufhigh utilization with percentsteal

The NFS Server issues the message GFSA363I to indicate an MVS data buffer shortage each time the server's threshold limit is reached, and message GFSA364I when the threshold is overcome. These messages imply that some of the current requests may fail with an "out of memory" error. This threshold is governed by two values set by the bufhigh server site attributes: the storage limit (in bytes, Kbytes, or Mbytes) of data buffers and the water mark (in percent) of the storage limit. There are additional console messages generated to pre-warn of the impending buffer shortage, before the critical threshold is actually reached. The benefit of these warning messages is that System Automation can be configured to act upon these 'Buffer Shortage' warning messages to inform the application administrators on the remote NFS client to react accordingly and possibly throttle the incoming workload.

There are two additional site attributes, readaheadmax and maxrdforszleft, that also affect buffer usage. The readaheadmax attribute specifies the number of bytes to be read to fill the internal buffers so that additional read requests for that file may be satisfied directly from cache. The maxrdforszleft site attribute defines the number of physical block buffers to cache after determining a file's size (see section File size determination). This information is cached to satisfy any subsequent read requests for the same file.

Keep in mind also that some information will be cached on a file handle basis, in other words, for every file accessed within the timeout periods. Tuning of the bufhigh, readaheadmax, and percentsteal values should be determined based on the following conditions:
  • Number of files to be accessed
  • Available region
  • Amount of data to cache per file

The bufhigh, readaheadmax, and percentsteal attributes do not apply to z/OS UNIX processing.

For example, suppose that, on average, 1,000 physical sequential (DSORG=PS) files allocated on 3390 Model 3 DASD are accessed within the same timeout period through the z/OS NFS server. Further, assume that we would like two blocks of a file cached internally to satisfy read requests. If we assume an average block size of 25 KB (see NFS client system performance tuning for more detail), we would need at least 50 MB of storage for internal buffers. With a 20 percent value for percentsteal, a 64 MB value for bufhigh would probably be more reasonable. For this example, a reasonable value for the readaheadmax attribute is the file block size, or 25 KB. The readaheadmax value should not be less than twice the maximum record length of files accessed by way of the z/OS NFS server.

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014