The ZFS ARC cache tries to keep a balance between most frequently and least recently used data. Also, by default, ZFS ARC only fills out to a maximum of about half the available RAM. You can change that at runtime (by writing the size in bytes to
/sys/module/zfs/parameters/zfs_arc_max
or setting the module e.g. in
/etc/modporbe.d/zfs.conf
to something like this
options zfs zfs_arc_max=<size in bytes>
). But be careful, as the ZFS ARC does not play that nice with the OOM killer.