非常に長い時間キャッシュされるように時間の書き込みを設定する方法はありますか? I need atime(つまり、relatimeはそれをカットしません)が、パフォーマンスにそれほど影響を与えたくありません。場合によっては(停電など)、データの損失が許容される場合もあります(場合によってのみ)。
Ext4のマウントオプションであるlazytime
を見つけました。これは、これを十分に解決します。
https://lwn.net/Articles/620086/
このモードでは、atime、mtime、およびctimeの更新は、メモリ内バージョンのiノードに対してのみ行われます。ディスク上の時間は、(a)iノードのiノードテーブルブロックを、ブロック内のiノードに関連する時間に関連しない変更のために更新する必要がある場合、(b)ユーザースペースがfsync()を呼び出す場合、または(c)削除されていないiノードのrefcountがゼロになります(ほとんどの場合、iノードに関連付けられている最後のファイル記述子が閉じているとき)。
このオプションは、カーネル4.0以降で使用できます。
同様に、デフォルトのrelatime
をオーバーライドする必要があります。そうしないと、relatime
のキャッシュ機能に加えてlazytime
機能が得られます。これを行うには、strictatime
AND lazytime
でマウントします。