os:nas4free:zfs:cache
差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
os:nas4free:zfs:cache [2018/01/04 10:07] – [キャッシュ(L2ARC/ZIL)] hayashi | os:nas4free:zfs:cache [2024/11/01 08:58] (現在) – admin | ||
---|---|---|---|
行 1: | 行 1: | ||
+ | ====== キャッシュ(ARC/ | ||
+ | |||
+ | * **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/ | ||
+ | |||
+ | ==== パーティションスキーマの破壊 ==== | ||
+ | |||
+ | # 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 | ||
+ | |||