A.34 Read Ahead Blocks and Allocate Ahead Blocks Commands

NSS offers the Read Ahead Blocks command for tuning read performance, and the Allocate Ahead Blocks command for tuning write performance. You can enter the commands at the server console on NetWare, or in the NSS Console (nsscon) on Linux.

A.34.1 Read Ahead Blocks

The Read Ahead Blocks parameter can be set differently on each NSS volume. It specifies the number of data blocks that NSS reads ahead for any open file on which read operations are ongoing in the specified server. The Read Ahead Blocks parameter is enabled by default and set at 2 blocks on NetWare and 16 blocks on Linux. To modify the value, you must set it from the command line using the ReadAheadBlks switch. On Linux, you can also set the value from NSSMU in the volume properties.

The default block count satisfies the performance requirements for a typical volume. The valid range for block count is 0 blocks to 1024 blocks, where a block count of zero (0) implies no read ahead. However, the practical maximum is 128 blocks.

The most efficient value for block count depends on your hardware. In general, we recommend a block count of 8 to 16 blocks for large data reads; 2 blocks for CDs, 8 blocks for DVDs, and 2 blocks for ZLSS.

The block count should not exceed 128 blocks for most implementations. Aggressive read ahead is optimal for sequential access but it degrades random access. Block counts greater than 128 can starve other system components for memory or buffers, which can result in poor performance or can cause system hangs. As the number of concurrent connections to unique files increases, you should reduce the read-ahead block count.

nss /ReadAheadBlks=volname:count

Specify VolName as the name of the volume that you are setting the attribute for. Specify the Count to be the number of 4 KB blocks that you want to NSS to read ahead. The valid range for a block count is 0 blocks to 1024 blocks, where a block count of zero (0) implies no read ahead. However, 128 blocks is the practical maximum.

Read-ahead block counts higher than 128 can starve other system components for memory or buffers, which can impair performance or cause the system to hang. As the number of concurrent connections to unique files increase, you should reduce the number of read-ahead blocks.

Default: 2 (NetWare); 16 (Linux)

Range: 0 to 1024 blocks, where 0=Off; Practical maximum: 128

IMPORTANT:The default ReadAheadBlks count for OES 1 Linux is 2 blocks. If you have read performance issues after upgrading from OES 1 Linux to OES 2 Linux, check the volume settings for ReadAheadBlks count. For information, see Section 3.7, Upgrading from OES 1 Linux to OES 2 Linux.

A.34.2 Allocate Ahead Blocks

Use the Allocate Ahead Blocks command for tuning write performance for all NSS volumes on the server.

nss /AllocAheadBlks=value

Sets the number of blocks to allocate ahead on writes.

Default: 15

Range: 0 to 63