OpenZFS and L2ARC

Allan Jude allanjude at freebsd.org
Tue Sep 8 17:52:50 UTC 2020


On 2020-09-08 03:43, Stefan Esser wrote:
> OpenZFS seems to work quite well for me, in general, but I have
> questions regarding the L2ARC statistics.
> 
> The system uses a 3 * 6 TB raidz1 (plus further ZFS volumes that
> are not relevant here, since without level 2 ARC) and an 1 TB M.2
> SSD with a 256 GB partition for the L2ARC (and most of it currently
> unused, else).
> 
> The L2ARC seems to have filled to the limit of 256 GB, but after
> several reboots, sysctl reports a L2ARC size of nearly twice the
> allocated space:
> 
> kstat.zfs.misc.arcstats.l2_size: 534620858880
> 
> That is 497 GiB, and might be possible with a lz4 compression
> factor of 2 - if the value reported is not the space allocated,
> but the actual (uncompressed) data held by the L2ARC.
> 
> 
> The sysutils/zfs-stats port reports the following values for
> this system, BTW:
> 
> ------------------------------------------------------------------------
> ZFS Subsystem Report                Tue Sep  8 09:02:46 2020
> ------------------------------------------------------------------------
> 
> L2 ARC Summary: (HEALTHY)
>     Passed Headroom:            0
>     Tried Lock Failures:            0
>     IO In Progress:                0
>     Low Memory Aborts:            7
>     Free on Write:                123
>     Writes While Full:            0
>     R/W Clashes:                0
>     Bad Checksums:                0
>     IO Errors:                0
>     SPA Mismatch:                0
> 
> L2 ARC Size: (Adaptive)                497.91    GiB
>     Header Size:            0.11%    558.83    MiB
> 
> L2 ARC Evicts:
>     Lock Retries:                6
>     Upon Reading:                0
> 
> L2 ARC Breakdown:                5.75    m
>     Hit Ratio:            81.94%    4.71    m
>     Miss Ratio:            18.06%    1.04    m
>     Feeds:                    235.04    k
> 
> L2 ARC Buffer:
>     Bytes Scanned:                0    Bytes
>     Buffer Iterations:            0
>     List Iterations:            0
>     NULL List Iterations:            0
> 
> L2 ARC Writes:
>     Writes Sent:            100.00%    22.67    k
> 
> ------------------------------------------------------------------------
> 
> With the FreeBSD ZFS (without persistent L2ARC) I never got more
> than 20% hit ratio on the L2ARC between reboots.
> 
> Quite a number of sysctl variable names have changed, and the port
> needs to be adapted to the new names (therefore there are lots of 0
> values in the -L output).
> 
> The following names used by zfs-stats do not exist in OpenZFS:
> 
> kstat.zfs.misc.arcstats.recycle_miss
> kstat.zfs.misc.arcstats.l2_write_buffer_bytes_scanned
> kstat.zfs.misc.arcstats.l2_write_buffer_iter
> kstat.zfs.misc.arcstats.l2_write_buffer_list_iter
> kstat.zfs.misc.arcstats.l2_write_buffer_list_null_iter
> kstat.zfs.misc.arcstats.l2_write_full
> kstat.zfs.misc.arcstats.l2_write_in_l2
> kstat.zfs.misc.arcstats.l2_write_io_in_progress
> kstat.zfs.misc.arcstats.l2_write_not_cacheable
> kstat.zfs.misc.arcstats.l2_write_passed_headroom
> kstat.zfs.misc.arcstats.l2_write_pios
> kstat.zfs.misc.arcstats.l2_write_spa_mismatch
> kstat.zfs.misc.arcstats.l2_write_trylock_fail
> kstat.zfs.misc.arcstats.l2_writes_hdr_miss
> vfs.zfs.vdev.cache.size
> 
> The existence of vfs.zfs.vdev.cache.size vs vfs.zfs.vdev.cache_size
> can be used to detect OpenZFS, and is easily fixed.
> 
> But the above listed L2ARC values seem to have been removed from or
> have never existed in OpenZFS, and I did not find any substitutes.
> 
> Are there any plans to re-create them in OpenZFS on FreeBSD or are
> they gone for good?
> 
> I'd like to update the zfs-stats port for compatibilíty with OpenZFS ...
> _______________________________________________
> freebsd-fs at freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/freebsd-fs
> To unsubscribe, send any mail to "freebsd-fs-unsubscribe at freebsd.org"

I think the kstats you are looking for are:

kstat.zfs.misc.arcstats.l2_asize: 0
kstat.zfs.misc.arcstats.l2_size: 0

l2_asize is the 'allocated' size, that will be how much actual disk
space is used. And l2_size will be the amount of data contained, so
compression may make this quite a bit larger than the size of the
physical device.


-- 
Allan Jude

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 834 bytes
Desc: OpenPGP digital signature
URL: <http://lists.freebsd.org/pipermail/freebsd-fs/attachments/20200908/13f98427/attachment.sig>


More information about the freebsd-fs mailing list