X

Oracle Solaris, Oarcle ハードウェア製品に関する情報

  • Sun
    February 19, 2010

ZFS の READ 用キャッシュチューニング方法

Guest Author


Solaris 10/09 で ZFS の L2ARC(Level 2 Adaptive Replacement Cache)が
サポートされましたが、同時に ARC と L2ARC の使用有無に関するチューニング
が行えるようになりました。



ARC と L2ARC は、それぞれ ZFS の一次用、二次用の READ 用キャッシュとして
機能し、READ のパフォーマンスを向上させる仕組みなのですが、
RAID アレイ装置や、アプリケーションとの組み合わせによっては、逆にこの READ 用キャッシュ
がオーバヘッドとなる時もあります。



そんな時は、この ARC と L2ARC の働きを OFF にするチューニングが有効です。
この ZFS キャッシュのチューニングには、all/none/metadata の3種類があります。



all: キャッシュを行う

none: キャッシュを行わない

metadata : メタデータのみキャッシュする



それでは実際に設定してみましょう。

まずは、現在の設定を確認してみます。


# zfs get all | grep cache
tank primarycache all default
tank secondarycache all default
tank/home primarycache all default
tank/home secondarycache all default
tank/iscsi-vol primarycache all default
tank/iscsi-vol secondarycache all default



この結果より、primarycache と secondarycache のプロパティは、ファイルシステム
毎に指定で、デフォルトは all(全てのデータをキャッシュ) である事が分かります。



それでは、 tank/iscsi-vol のファイルシステムに対して、primaricache と
secondarycache を none にしてみましょう。


# zfs set primarycache=none tank/iscsi-vol
# zfs set secondarycache=none tank/iscsi-vol
# zfs get primarycache tank/iscsi-vol
NAME PROPERTY VALUE SOURCE
tank/iscsi-vol primarycache none local
# zfs get secondarycache tank/iscsi-vol
NAME PROPERTY VALUE SOURCE
tank/iscsi-vol secondarycache none local



これで tank/iscsi-vol ファイルシステムに対して ZFS の READ キャッシュを
OFF にする事ができました。



ちなみに、ファイルシステム作成時でもプロパティが指定できます。


# zfs create -o primarycache=metadata tank/newdatab



また、ARC キャッシュを使用したいが、キャッシュ領域の制限を設定したい時には、/etc/systems
へ set zfs:zfs_arc_max の設定を追加する事で制限が可能です。



(例)

ARC を 2GB に制限する場合
set zfs:zfs_arc_max = 2147483648






(参考情報)

過去の 「やっぱり Sun がスキ!」blog 記事一覧はこちらを参照下さい。

http://wikis.sun.com/display/yappri/Home

Be the first to comment

Comments ( 0 )
Please enter your name.Please provide a valid email address.Please enter a comment.CAPTCHA challenge response provided was incorrect. Please try again.