Oracle Solaris カーネルのチューンアップ・リファレンスマニュアル

fsflush

システムデーモン fsflush は定期的に実行され、主に次の 3 つの作業を行います。

  1. fsflush は呼び出されるたびに、一定期間が経過した汚れたファイルシステムページをディスクにフラッシュします。

  2. fsflush は呼び出されるたびに、メモリーの一部分を検証し、変更されたページをバッキングストアに書き出します。ページは、変更されており、かつ次の条件のどれにも該当しない場合に書き込まれます。

    • ページはカーネルページである

    • ページは使用されていない

    • ページがロックされている

    • ページにスワップデバイスが対応づけられている

    • ページが入出力操作に現在関与している

    この結果、書き込み権に基づいて mmap でマッピングされ、かつ実際に変更されているファイルのページがフラッシュされます。

    ページはバッキングストアにフラッシュされますが、それを使用しているプロセスとの接続は保たれます。フラッシュしておくと、システムのメモリーが不足したときのページの再利用が簡単になります。これは、フラッシュ後にそのページが変更されていなければ、ページを回収する前にそのページをバッキングストアに書き出す必要がなくなり、遅延を避けられるからです。

  3. fsflush はファイルシステムのメタデータをディスクに書き込みます。この書き込みは n 回目の呼び出しごとに行われます。n はさまざまな構成変数から計算されます。詳細は、tune_t_fsflushrautoup を参照してください。

次の機能を構成できます。

ほとんどのシステムでは、fsflush によって、メモリーの走査と、ファイルシステムメタデータの同期化を行うのが一般的です。システムの使用状況によっては、メモリーの走査はほとんど意味がなかったり、CPU 時間を使用しすぎることがあります。