ZFSでARCの効果を調べる
Netatalk MLで話題になっていたので、調べてみました。
サーバスペックは、概ね次の通りです。
- HFS+(SSD)対ZFS(SSD+HDD)ベンチマーク : プラスα空間 (2014年1月15日)
重要なところだけ抜き出すと、次の通りです。
- サーバスペック
- Pentium G630T (MEM 16GiB)
- ARC 15GiB (DRAM)
- ZIL 8GiB (SSD)
- L2ARC 16GiB (SSD)
- データプール(upool) (HDD)
- FreeBSD 10.0
- クライアントスペック
- MacBook Pro Retina 13 (Early 2015) i5 (MEM 16GiB)
- USB3-GigabitEtherアダプタで接続
- OS X 10.10.3 Yosemite
FreeBSDには、Netatalk3.1.7とSamba3.6.25をインストールしてあります。この状態で、ARC(primarycache)をOn/Offして、ベンチマークを取ってみました。ベンチマークは、fioを使っています。測定条件は、CristalDiskMarkに近くなるように設定しています。
いつもどおり、AFP接続の方が速いです。ARCをOFFにすると、ガクッと速度が落ちますね。ARCをONでしか使ったことがなかったので、ARCがこんなに効果的とは思っていませんでした。
なお、ARCのOn/Offは次のコマンドで設定できます。データセットが、upool/export/aの場合です。
ARC On
# zfs set primarycache=all upool/export/a
ARC Off
# zfs set primarycache=none upool/export/a
ちなみに、ARCの状態を見る方法は次の通りです。これは、ARCがOffの状態です。
# zfs get primarycache upool/export/a NAME PROPERTY VALUE SOURCE upool/export/a primarycache none local
AFP接続とSMB接続とで、速度低下率を調べています。
AFP接続(netatalk)だと、Writeに比べてReadの速度低下率が大きいようです。SMB接続(samba)だと、落ち方は大体同じなのですが、Sequential Writeがなぜか速くなっています。何故でしょうか?
ディスカッション
有益な情報ありがとうございます。ただ、 primarychache → primarycache かと。
五十嵐寧史さんへ、初コメントありがとうございます。
ご指摘ありがとうございます。修正しておきました。