Usage Note 23186: How do I optimize I/O performance when using direct access bound libraries on OS/390?
The first step is to determine whether the primary pattern of access will be sequential or random. Based on the primary access pattern, select an appropriate page size according to the guidelines below.
The BUFSIZE data set option, first available in Version 6, enables you to establish a non-default page size for a new SAS data set, subject to some limitations. Once determined, the page size becomes a permanent attribute of the SAS data set and influences the efficiency of both the output operation that creates the data set as well as that of subsequent read or update operations.
The minimum page size that may be specified for a SAS data set is the block size of the library that will contain it. Because the library block size is fixed when the library is created, achieving optimal performance may require creating new libraries with special block sizes and/or segregating members accessed sequentially and those accessed randomly into separate libraries.
The recommendations for each access pattern are as follows:
Sequential Access
- Choose a library block size that corresponds to half-track blocking (that is, two blocks per track). This is the largest practical library block size.
For example, specify:
option blksize (3380)=half blksize(3390)=half;
This option was first available in Version 6.
- Choose a page size for the SAS library that is twice the library block size. The page size is specified via the BUFSIZE data set option.
- Choose a larger BUFNO than the default. Start with 10, though it may be helpful to increase the page size to 30. The performance benefit will vary depending upon the cache scheme employed by the controller on which the data library resides.
- Consider using the In-Memory File (IMF) feature for a SAS file, which will be accessed across many SAS steps (data / procedure), if the file is small enough to fit into the available region size. Load the file using the SASFILE statement prior to the SAS steps, which will process the file. The file will be read and, if necessary, written, only once. Without IMF, the file would be read once per step. IMF was added in Release 8.1.
Random Access
- Choose a library block size of 6K.
- Explicitly set the member page size (BUFSIZE) equal to the library block size.
- Strongly consider using the SASFILE statement to load a repetitively accessed file (such as master file) into memory. The elapsed time for such operations is dramatically reduced by IMF because all the member pages that need to be accessed only need to be read into memory once. However, take care to ensure that the region size for the job is large enough to contain the file being loaded. It may also be necessary to consult with the OS/390 systems administrators to ensure that the job is protected from having its virtual storage working set size trimmed.
Tape Libraries or Sequential Format Bound on OS/390
For sequential format bound libraries (that is, those processed with the TAPE engine), simply choose the default BUFSIZE, as it is always the most appropriate choice.
This technical tip was contributed by staff from SAS R&D: Lindsey Greene, Lewis King and Ron Statt.
Operating System and Release Information
| SAS System | Base SAS | z/OS | n/a | |
*
For software releases that are not yet generally available, the Fixed
Release is the software release in which the problem is planned to be
fixed.
| Type: | Usage Note |
| Priority: | low |
| Date Modified: | 2003-02-25 20:40:07 |
| Date Created: | 2003-02-25 14:19:58 |