|
|
VxFS, the default UnixWare 7 filesystem, provides a range of performance/reliability tradeoffs through various mount options which control journaling and data caching policies. Current defaults promote the highest degree of reliability, but with a resulting performance cost.
At the other end of the spectrum, you can turn off all journaling and select the most lax data caching policies, resulting in improved performance, but decreased reliability.
However, turning off journaling is not practical because doing so creates serious risk that the filesystem will be unrecoverable after a crash. Furthermore, use of reliable file storage does not eliminate the need for journaling or some other type of filesystem recovery mechanism. The OS manipulates and caches filesystem data in memory, and at times the cached data is inconsistent with what is stored on disk. As a result, a sudden or unexpected machine halt could potentially leave the filesystem and its data in an unrecoverable state. Journaling provides a reasonably efficient mechanism for keeping the filesystem in a recoverable state at all times.
There are ways short of turning off journaling to improve performance with an acceptable (depending on your organization's needs) decrease in reliability. The following sections describe VxFS options which allow such performance/reliability tradeoffs.
Journaling (that is, logging) enables filesystem recoverability and reliability of filesystem structural data. VxFS provides four different levels of logging. In order of reliability, these are:
With log, delaylog, or tmplog, the filesystem is recoverable after a crash. With nolog, the filesystem may be unrecoverable following a crash.
Other VxFS mount options affect the performance/reliability tradeoff by controlling caching of file data and the policies for writing file data cached in memory to disk. In order of decreasing reliability and increasing performance, these options are:
With mincache=``closesync'', cached file data is flushed to disk periodically as a file is written, and all unwritten cached file data is written to disk when the file is closed. When no mincache option is used, cached file data is flushed periodically, but uncached file data is not written to disk immediately upon close of a file. mincache=``tmpcache'' increases data caching further, improving performance at the cost of some decrease in data reliability.
If you want to optimize performance, and you are willing to accept some decrease in reliability, you might want to use the advanced VxFS filesystem with tmplog and mincache=``tmpcache''. This gives good performance while still maintaining a degree of reliability comparable to traditional UNIX.
mincache=``tmpcache'' can only be used with advanced VxFS. If the basic VxFS is used instead of advanced VxFS, then we recommend ``tmplog'' and ``no mincache'' options. In either event, we advise turning off the mincache=``closesync'' mount option, which reverses the UnixWare 7 installation default.
Another modification we have found which generally improves performance is to increase the size of the filesystem log at the time the filesystem is created. Increasing the size of the log allows the filesystem to defer committing transactions, which in turn allows it to cache data longer as well as reduce and/or smooth out disk I/O load.