ZFS と他のファイルシステム間のファイル受渡しには arc_min を上げる2020年06月02日 12時50分19秒

ZFS は独自でファイルキャッシュを内蔵し、システムのメモリ管理と競合しやすい。FreeBSD は ZFS のファイルはキャッシュせずに、ZFS 自体に任せている。また、FreeBSD 側のメモリの利用が増えてくると ZFS の ARC メモリの割当が下がってくる。

特に、物理メモリ大きさ以上のファイルを ZFS とやり取りするとこれが顕著に現れる。UFS や NFS は元より、msdosfs や NTFS 等でも起きる。最初は ZFS がふんだんにメモリを使って読み書きが早いが、ファイルキャッシュが埋まって ARC が減ると読み書きの速度に影響が出る。

ARC メモリが減って読み書きが遅くなるので、sysctl で上げれば良い。

% sysctl vfs.zfs.arc_min
vfs.zfs.arc_min: 102101120
例えば上記の場合は zfs_arc が 100MB ぐらいになっている。この位だと、ZFS のスループットが半分以下になる。そこで、
$ sysctl vfs.zfs.arc_min=302101120
vfs.zfs.arc_min: 102101120 -> 302101120
等とやると 300MB は常に確保される。この十年来の機械だとこのぐらいあれば問題ない。もっと早い機械だともっと必要になるだろう。

コメント

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※なお、送られたコメントはブログの管理者が確認するまで公開されません。

名前:
メールアドレス:
URL:
コメント:

トラックバック

このエントリのトラックバックURL: http://uyota.asablo.jp/blog/2020/06/02/9253419/tb

※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。