FreeNAS でメモリが十分でないと、カーネル用に割り当てられるメモリが不足してパニックを起こすことがあるようで、そのような場合は Autotune を有効にするといいらしいです。
で、それってどこからメモリが十分でないの?っていうのをちょっと調べてみました。
FreeNAS Documentation 5.4.1. Autotune
なんでそんなことになっちゃってるんだろう、というのへの考察は
『サーバーで遊ぶ: その4 freenas 8 RAID-Z2 では、何台のHDDが良いのだろう?』 - どんぐりトトログ
の真ん中辺のイメージ図が参考になるかも。
仮想マシン上で、メモリを変更しながら、再起動を繰り返して(Autotuneは起動時に設定されるため) Autotune で設定される Tunable の値がどう変化するかという単調な作業の繰り返しの結果、
システムのメモリが4GB以下の場合は、 Autotune で設定される値に意味がありそう
ということになりました。
(調べた結果はこちら FreeNAS Autotune Parameter)
実際にどのような仕組みで値が設定されているかは、 /usr/local/bin/autotune にスクリプトが記述されているそうです。
ESXi上で4GBのメモリに設定。
ESXi上で4GBのメモリでAutotune設定。
Sequential の Read がガッツリ落ち込んでるのは、やはり Autotune 設定が Arc サイズを制限しているからじゃないですかね。
ESXi上で2GBのメモリ設定。
ESXi上で2GBのメモリでAutotune設定。
同様の傾向です。
ESXi上で1GBのメモリでAutotune設定。
MicroServer上で8GBのメモリのRaidZ2(4ドライブ)。
MicroServer上で16GBのメモリのRaidZ(5ドライブ)。
上記を実験中FreeNASのレポート画面のメモリ使用量。
4GBだと、1GBのCrystalDiskMarkではメモリに余裕が残ってます。
4GB Autotune 設定なし。
1GBのCrystalDiskMark中に3GBくらい取りに行ってるので、
4GBの場合はパフォーマンスと安定性とどちらがいいか…。
家庭用の利用であれば、Autotune は2GBしか搭載できていない時用でいいかもしれませんね。
(上記ベンチ中はどの環境でもパニックは起きませんでした)