システムデーモン fsflush は定期的に実行され、主に次の 3 つのことを行います。
fsflush は、呼び出されるたびに次のことを行います。
一定の時間を経過したダーティーなファイルシステムページをディスクにフラッシュします。
メモリーの一部を調べ、変更されているページをそれぞれのバッキングストアに書き込みます。ページは、変更されており、かつ次の条件のどれにも該当しない場合に書き込まれます。
カーネルページである
空いている
ロックされている
スワップデバイスに関連付けられている
現在入出力操作に使用されている
この結果、書き込み権に基づいて mmap され、かつ実際に変更されているファイルのページがフラッシュされます。
ページはバッキングストアにフラッシュされますが、それを使用しているプロセスとの接続は保たれます。フラッシュしておくと、システムのメモリーが不足したときのページの再利用が簡単になります。これは、フラッシュ後にそのページが変更されていなければ、ページを回収する前にそのページをバッキングストアに書き出す必要がなくなり、遅延を避けられるからです。
ファイルシステムのメタデータをディスクに書き込みます。この書き込みは n 回目の呼び出しごとに行われます。n はさまざまな構成変数から計算されます。詳細は、「tune_t_fsflushr」と 「autoup」を参照してください。
呼び出しをどのような頻度で行うかや、メモリー走査を実行するかどうか、ファイルシステムデータのフラッシュを行うかどうか、そしてそのフラッシュをどのような頻度で行うかは、構成可能です。
ほとんどのシステムでは、fsflush によって、メモリーの走査と、ファイルシステムメタデータの同期化を行うのが一般的です。システムの使用状況によっては、メモリーの走査はほとんど意味がなかったり、CPU 時間を使用しすぎることがあります。