ZFSに関する多くの資料では、基本的にメモリを多く割り当てるほど良いと述べられています。しかし、私は16GBのRAMを搭載したノートパソコンでZFSを使用する予定です。ZFSにはそれで十分ですが、使用コンピューターからファイルを提供するのではなく、コンピューターのメモリをアプリケーションが (少なくとも大部分の) 使用できるようにしたいのです。つまり、ファイルシステムの実装ではなく、そのメモリを使用できるようにしたいのです。
それで、質問として定式化すると、メモリ使用量が多く、IO に敏感でないアプリも実行しているコンピューターで ZFS を実行する場合、ZFS のメモリ要件をどのように解釈すればよいのでしょうか?
答え1
2GBのメモリが必要ですLinux 上の ZFS に関する FAQ。
パラメータを設定することでメモリ要件を調整することもできますzfs_arc_max
。
# cat /etc/modprobe.d/zfs.conf
options zfs zfs_arc_max=4294967296
/sys
設定を表示するパラメータがありますzfs
:
/sys/module/zfs/parameters/zfs_arc_max
/sys/module/zfs/parameters/zfs_arc_min
次の設定を使用して、どのファイルシステムをキャッシュするかを設定することもできますzfs primarycache
。
# zfs set primarycache=[all none metadata] zpool/fs
答え2
ZFS は、キャッシュに有用と思われる量のメモリを使用しますが、要求があればアプリケーションにメモリを返します。
他のファイル システムも、必要なだけのメモリをキャッシュとして取得することに注意してください。主な違いは、メモリがアプリケーションですぐに使用できることです。ZFS では、わずかな遅延がありますが、ZFS がメモリを解放するよりも速くメモリを使用するアプリケーションがある場合、または報告された空きメモリ (+ バッファ/キャッシュ) を考慮して、十分なメモリがない場合は起動を拒否するアプリケーションがない限り、違いはありません。
このような場合、アプリケーションに必要なメモリ フットプリントを事前に把握している場合は、アーク最大サイズの調整値を設定して RAM を予約することができます。
答え3
私は 8GB の RAM を搭載したサーバーで Linux 上で zfs を実行しています。ドキュメントに忠実に、ほとんどの RAM を消費します。ただし、メモリを大量に消費するアプリケーションを実行してもパフォーマンスの違いは感じられませんでした。メモリが必要な場合は、zfs が喜んでメモリを解放するようです。ただし、メモリ使用率の途方もない数値が表示されることに慣れてください。