Tuning the writeback caching

When writeback caching is enabled, any data that is read from the disk is cached, unless the file is explicitly marked for "no caching" or if the cache is full. For writes, certain writes cause the data to be cached. You can load a file to speed up the application. Pinning a file in the cache ensures that the data does not get evicted. If some data is already cached, and that portion of the disk is overwritten, then SmartIO also writes the new data to the cache device to ensure that the cached data remains up to date.

If you are using a database template, SmartIO caches according to the template rules.

See About SmartIO caching for Oracle databases on VxFS file systems .

You can use the following tunable parameters to adjust the size of the cache and how long data is held in the cache.

Setting the maximum space used for dirty data per node

Setting the maximum retention time used for dirty data

Setting the maximum space used for dirty data per node

When writeback is enabled, you can configure how much of the cache is used for dirty data. The writeback_size attribute sets the maximum amount of cache area space that is used for writeback data for each file system. The maximum is set per node. By default, there is no maximum. If you configure a maximum, the value must be at least 512 MB.

For a cluster file system, SmartIO in writeback mode reflects, or mirrors, the cache data for each node to the other node's SSD cache. The actual disk space usage is twice the amount used for a standalone file system. The reflected data is not considered in the maximum size, however. For example, if the writeback_size is set to 512 MB, a cluster file system uses up to 512 MB on each node, for a total of 1024 MB.

Run the following command to configure the maximum. For a cluster file system, run the command on each node of the cluster to make the setting cluster wide.

# sfcache set writeback_size=size

For example:

# sfcache set writeback_size=1g

Use the following command to view the current value:

# sfcache stat cachearea_name

See Viewing the SmartIO cache statistics .

Setting the maximum retention time used for dirty data

Dirty data is data in the cache that has not been flushed to the disk and so is out of sync with the data disk. The retention time determines how long the dirty data might remain unflushed. The default is 10 seconds.

For a cluster file system, run the command on each node of the cluster to make the setting cluster wide.

# sfcache set writeback_interval=interval

For example:

# sfcache set writeback_interval=100

Use the following command to view the current value:

# sfcache stat cachearea_name

See Viewing the SmartIO cache statistics .