30.5 Setting the File and Buffer Flush Timers

Increasing the flush time settings can improve performance, but does it at the risk of data loss during a system failure. The timers relate directly to the amount of uncommitted data in the NSS cache. The higher the timer setting, the more dirty blocks are waiting to be written to disk. The lower the timer setting, the more frequently data is written, so there is less data queuing for the write and less uncommitted data that could potentially be lost if the server were to crash.

The default timer value of 10 seconds is best suited for most production environments. If you decrease the value (increase the number of writes), you should monitor the performance of the system to understand how more frequent writes are impacting the system. If you increase the value (decrease the number of writes), you should monitor the ZLOG file and cache statistics to understand how increasing the amount of uncommitted data might affect your users and data recovery procedures in the event of a crash. The maximum of 60 minutes (3600 seconds) is available for the discretionary flexibility of the system administrator.

It is up to the administrator to determine how frequently data is committed to the disk. Where you set the timer depends the criticality of the data, how much data there is to be written, and how fast dirty blocks are generated for writes (turnover of the data). It also depends on how sensitive your environment is to long reboot times should the server crash. The more unwritten data transactions that have to be resolved from the journal, the longer it takes to bring up the system after the crash.

The following NSS parameters can be used to adjust the file and buffer flush timers:

nss /FileFlushTimer=value

Set the maximum amount of time in seconds that modified files are kept in a cache buffer before flushing the files to disk.

Increasing this number might reduce the number of writes to disk; however, it increases the amount of data that is lost if the system crashes.

Increasing the FileFlushTimer setting beyond a minute or two can lead to overflowing the ZLOG file and throttling system operations.

Default: 10 (seconds)

Range: 1 to 3600 (seconds)

nss /BufferFlushTimer=value

Set the maximum amount of time in seconds that modified NSS file system cache buffers are kept in memory before they are written to disk.

nss /BufferFlushTimer=value

IMPORTANT:In OES 2 Linux, this timer is not used. It has been replaced by the group write timers for Journal, Metadata, and User Data. For information, see Section 31.3, Configuring or Tuning Group I/O.

Default: 1 (second)

Range: 1 to 3600 (seconds)