ユーザ用ツール

サイト用ツール


os:nas4free:zfs:cache

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

次のリビジョン
前のリビジョン
os:nas4free:zfs:cache [2017/04/14 05:21] – 外部編集 127.0.0.1os:nas4free:zfs:cache [2024/11/01 08:58] (現在) admin
行 1: 行 1:
 +====== キャッシュ(ARC/L2ARC/ZIL) ======
 +
 +  * **L2ARC**
 +    * ZFS の二次用の READ 用キャッシュ((一次用にはメモリが使用される))
 +    * メモリが64GB未満では搭載の意味はない…らしい
 +    * L2ARCのサイズは搭載しているRAMの5倍を超えないこと
 +  * **ZIL**
 +    * ZIL(ZFS Intent Log)は、ZFSのWriteログ領域。SSDを適用することでWrite速度の向上を促す。
 +    * 同期書き込みにのみ使用される((よって、DBの場合に大きな効果を発揮する場合がある))
 +    * ZILは最大で物理メモリの半分が有効サイズ
 +    * ZILを構成するには高速でキャパシタ付きのメモリを搭載したSSDを使用することが推奨
 +    * ZFSv28以降のpoolでは、ZILをミラーする必要はない
 +
 +===== ARC サイズの制限 =====
 +
 +デフォルトでは**搭載メモリ量 - 1GB** が ARC の最大値として割り当てられる
 +つまり 8GB のメモリを搭載した環境では 7GB まで ARC に使われる可能性がある
 +
 +これを制限するパラメータは sysctl の vfs.zfs.arc.max ((13.0-RELEASE より前は vfs.zfs.arc_max))
 +アプリケーションにどの程度メモリを空けて置きたいのかを考えて、ARC を制限する
 +
 +例:4GB に制限する
 +
 +  sysctl vfs.zfs.arc.max=4294967296
 +
 +
 +===== L2ARC のメモリ使用量 =====
 +
 +L2ARC は割り当てた容量の約 1.59% のメモリをその管理に使用する
 +キャッシュヒット率をあげようとして 1TB の SSD を割り当てたとすると
 +
 +  1 TB * 0.0159 = 15.9 GB
 +
 +で約16GBのメモリを使用する
 +
 +逆に L2ARC の管理に 1GB のメモリを割り当てるとした場合、 逆算して 63GB の L2ARC を割り当てるべきということが分かる
 +
 +  1 GB / 0.0159 = 62.89 GB
 +
 +===== キャッシュ(L2ARC/ZIL)の追加 =====
 +
 +==== パーティションスキーマの破壊 ====
 +
 +  # gpart destroy ada0
 +
 +==== パーティションスキーマの作成 ====
 +
 +  # gpart create -s gpt ada0
 +
 +==== 状態を確認 ====
 +
 +  # gpart show
 +
 +==== パーティションの作成 ====
 +
 +  # gpart add -s 48G -t freebsd-zfs -l l2arc ada0
 +  # gpart add -s 16G -t freebsd-zfs -l zil ada0
 +
 +==== 追加 ====
 +
 +  # zpool add tank01 log gpt/zil
 +  # zpool add tank01 cache gpt/l2arc
 +