The system daemon, fsflush, runs periodically to do three main tasks:
On every invocation, fsflush ...
Flushes dirty file system pages over a certain age to disk.
Examines a portion of memory and causes modified pages to be written to their backing store. Pages are written if they are modified and do not meet one of the following conditions:
Kernel page
Free
Locked
Associated with a swap device
Currently involved in an I/O operation
The net effect is to flush pages from files which are mmap(ed) with write permission and which have actually been changed.
Pages are flushed to backing store but left attached to the process using them. This will simplify page reclamation when the system runs low on memory by avoiding delay for writing the page to backing store before claiming it, if the page has not been modified since the flush.
Writes file system metadata to disk. This write is done every nth invocation, where n is computed from various configuration variables. See tune_t_fsflushr and Where to Find Tunable Parameter Information for details.
Frequency of invocation, whether the memory scanning is executed, whether the file system data flushing occurs, and the frequency with which it will occur are configurable.
For most systems, memory scanning and file system metadata syncing are the dominant activities for fsflush. Depending on system usage, memory scanning can be of little use or consume too much CPU time.