コンテンツの前にファイルメタデータをキャッシュするようにLinuxを設定する方法は?

コンテンツの前にファイルメタデータをキャッシュするようにLinuxを設定する方法は?

ファイルシステムのメタデータキャッシュにほとんどのRAMを使用するようにシステムを設定し、読み取り/書き込みキャッシュとファイルプリフェッチにはかなり少ないRAMしか使用したいと思います。理想的には、実際にファイルを開くまでディスクを回転させることなく、ファイルシステム(RAMに合う限り)をブラウズできるようにしたいです。

詳細は次のとおりです。

自家製のファイルサーバーがあります。 LVMボリュームには約9TBの容量の5つのディスクがありますが、RAMはわずか4GBです。サーバーはファイルを提供する以外に多くの操作を実行しないため、ほとんどのRAMがキャッシュに使用されます。 (「無料」は、キャッシュに使用されている3.9Gのうち3.4Gを報告します。)

サーバーは私の寝室にあり、静かなときにすべてのディスクが回転すると迷惑になるのに十分な騒音が発生します。 (シークノイズではなく回転ノイズだけを言うのです。ディスクメーカーとモデルが異なり、回転速度の若干の違いが干渉を起こす可能性があると思います。サブヘルツサイクルでわずかなノイズが発生するため、ほとんどの場合、ディスク速度を下げるようにサーバーを構成しました。

もちろん、ファイルマネージャでフォルダを開くときにディスクの回転が遅くなると、そのフォルダの回転があるディスクに関係なく遅延が発生します。それは大きな問題ではないということです。ただし、私が見ている場所によっては、LVMが各サブフォルダのメタデータを別のディスクに展開している場合、これらの現象は何度も連続して発生する可能性があります。

私はLinuxのキャッシュがほとんどファイルの内容、おそらくあらかじめインポートされたデータで埋められていると思います。数MBを超えるキャッシュは、シームレスな再生を保証するのにあまり役に立ちません。映画を見るだけなら、おそらくもう一度見ないでしょう。プリフェッチが発生すると、まったく役に立ちません。私として、数MB以上。

ただし、ほとんどのファイルシステムメタデータは、少なくともアクセスした部分をキャッシュするのに4 GBで十分であるため、ディスクを回転せずにファイルを検索できます(休止状態であることが判明した場合)。

ファイルを開くと、まだ遅延が発生しますが、大丈夫です。 「クリック。待つ;カチッという音。待つ;カチッという音。待つ;再生;表示'対 'クリック;クリック;クリック;再生;待つ「Watch」。前者は信じられないほど残念で、後者はほとんど予想されます。

メモ:

  1. 重要な場合は、カーネルは3.2、OSはDebian、ボリュームはlvm2、FSはext4です。

  2. RPMが落ちる唯一の理由は、夜の騒音によるものです。それ以外の場合、サーバーは引き続き実行されます。 (最大の低電力に設定しました。)回転遅延は時間帯によって異なります。

  3. ハードドライブはメディア専用です。オペレーティングシステムは別の(小型)フラッシュドライブにあります。 (つまり、開始遅延は、データに必要ではなくデータに由来することを意味します/usr。何らかの方法で問題を解決するのに役立つ場合は、数GBを確保できます。

  4. パフォーマンスへの合理的な影響はそれほど大きな問題ではありません。とにかく、ディスクは私のネットワークよりも高速です。

ベストアンサー1

Linux のキャッシュ方法を制御するには、次を参照してください。 https://www.kernel.org/doc/Documentation/sysctl/vm.txt

特にvfs_cache_Pressureを見ると、非常に低い値、さらにはゼロになる可能性があります(1がより安全なようです)。

vfs_cache_pressure
------------------

Controls the tendency of the kernel to reclaim the memory which is used for
caching of directory and inode objects.

At the default value of vfs_cache_pressure=100 the kernel will attempt to
reclaim dentries and inodes at a "fair" rate with respect to pagecache and
swapcache reclaim.  Decreasing vfs_cache_pressure causes the kernel to prefer
to retain dentry and inode caches. When vfs_cache_pressure=0, the kernel will
never reclaim dentries and inodes due to memory pressure and this can easily
lead to out-of-memory conditions. Increasing vfs_cache_pressure beyond 100
causes the kernel to prefer to reclaim dentries and inodes.

swappinessまた、データが絶対に交換されないように、または極端な場合にのみ発生するように変更する必要があるかもしれません。

このdrop_cachesオプションは、キャッシュしないデータを明示的に削除するのに便利です。

役に立つ可能性がある他のオプションがあると確信しているので、カーネル文書を確認してください。

/etc/sysctl.confこれを適用するために変更したい設定、または起動時にオペレーティングシステムから復元するために必要なすべての項目を入力します。

おすすめ記事