デフォルトでは搭載メモリ量 - 1GB が ARC の最大値として割り当てられる
つまり 8GB のメモリを搭載した環境では 7GB まで ARC に使われる可能性がある
これを制限するパラメータは sysctl の vfs.zfs.arc.max 3)
アプリケーションにどの程度メモリを空けて置きたいのかを考えて、ARC を制限する
例:4GB に制限する
sysctl vfs.zfs.arc.max=4294967296
L2ARC は割り当てた容量の約 1.59% のメモリをその管理に使用する
キャッシュヒット率をあげようとして 1TB の SSD を割り当てたとすると
1 TB * 0.0159 = 15.9 GB
で約16GBのメモリを使用する
逆に L2ARC の管理に 1GB のメモリを割り当てるとした場合、 逆算して 63GB の L2ARC を割り当てるべきということが分かる
1 GB / 0.0159 = 62.89 GB
# 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