Hello everyone,
I was able to confirm the fix for focal using the test case from the
description:
root@zfs-test:~$ free -h
total used free shared buff/cache available
Mem: 31Gi 247Mi 30Gi 1.0Mi 352Mi 30Gi
Swap: 0B 0B 0B
root@zfs-test:~$ cat /etc/modprobe.d/99-zfs-arc.conf
options zfs zfs_arc_min=536870912
options zfs zfs_arc_max=966367641
root@zfs-test:~$ dpkg -l | grep zfs
ii libzfs2linux 0.8.3-1ubuntu12.15
amd64 OpenZFS filesystem library for Linux
ii zfs-dkms 0.8.3-1ubuntu12.15 all
OpenZFS filesystem kernel modules for Linux
ii zfs-zed 0.8.3-1ubuntu12.15
amd64 OpenZFS Event Daemon
ii zfsutils-linux 0.8.3-1ubuntu12.15
amd64 command-line tools to manage OpenZFS filesystems
root@zfs-test:~$ sudo update-initramfs -u -k all
root@zfs-test:~$ reboot
root@zfs-test:~$ arc_summary -s arc
------------------------------------------------------------------------
ZFS Subsystem Report Tue Apr 18 10:22:26 2023
Linux 5.4.0-146-generic 0.8.3-1ubuntu12.15
Machine: zfs-test (x86_64) 0.8.3-1ubuntu12.15
ARC status: HEALTHY
Memory throttle count: 0
ARC size (current): 0.0 % 0 Bytes
Target size (adaptive): 100.0 % 921.6 MiB
Min size (hard limit): 55.6 % 512.0 MiB
Max size (high water): 1:1 921.6 MiB
Most Frequently Used (MFU) cache size: n/a 0 Bytes
Most Recently Used (MRU) cache size: n/a 0 Bytes
Metadata cache size (hard limit): 75.0 % 691.2 MiB
Metadata cache size (current): 0.0 % 0 Bytes
Dnode cache size (hard limit): 10.0 % 69.1 MiB
Dnode cache size (current): 0.0 % 0 Bytes
ARC hash breakdown:
Elements max: 0
Elements current: n/a 0
Collisions: 0
Chain max: 0
Chains: 0
ARC misc:
Deleted: 0
Mutex misses: 0
Eviction skips: 0
** Tags removed: verification-needed-focal
** Tags added: verification-done-focal
--
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to zfs-linux in Ubuntu.
https://bugs.launchpad.net/bugs/1964992
Title:
ZFS ignores ARC sizes below allmem/32
Status in zfs-linux package in Ubuntu:
Fix Released
Status in zfs-linux source package in Bionic:
Fix Released
Status in zfs-linux source package in Focal:
Fix Committed
Bug description:
[Impact]
ZFS ignores tunable "zfs_arc_max" due to it being below allmem/32 threshold.
This prevents users from properly restraining ARC sizes, and can cause
increased memory contention in some systems.
[Test Plan]
1. Deploy test system with ZFS storage and 32GB RAM
2. Add ARC tunables to /etc/modprobe.d/99-zfs-arc.conf
# cat /etc/modprobe.d/99-zfs-arc.conf
options zfs zfs_arc_min=536870912
options zfs zfs_arc_max=966367641
3. Reboot system
4. Verify ARC sizes through "arc_summary"
# arc_summary | grep -A3 "ARC size"
ARC size (current): < 0.1 % 1.3 MiB
Target size (adaptive): 100.0 % 15.7 GiB
Min size (hard limit): 3.2 % 512.0 MiB
Max size (high water): 31:1 15.7 GiB
For a 32GB test system, we should be able to set max ARC sizes below
1GB.
[Fix]
This has been fixed by upstream commit:
- 36a6e2335c45 "Don't ignore zfs_arc_max below allmem/32"
- e945e8d7f4fc "Restore FreeBSD sysctl processing for arc.min and arc.max"
The commit has been introduced in upstream zfs-2.0.0, so it's needed
for Bionic and Focal. Releases starting with Impish already have this
commit by default:
$ git describe --contains 36a6e2335c45
zfs-2.0.0-rc1~332
$ rmadison zfs-linux
zfs-linux | 0.7.5-1ubuntu15 | bionic | source
zfs-linux | 0.7.5-1ubuntu16.12 | bionic-updates | source
zfs-linux | 0.8.3-1ubuntu12 | focal | source
zfs-linux | 0.8.3-1ubuntu12.9 | focal-security | source
zfs-linux | 0.8.3-1ubuntu12.13 | focal-updates | source
zfs-linux | 0.8.3-1ubuntu12.14 | focal-proposed | source
zfs-linux | 2.0.6-1ubuntu2 | impish | source
zfs-linux | 2.0.6-1ubuntu2.1 | impish-updates | source
zfs-linux | 2.1.2-1ubuntu3 | jammy | source
[Regression Potential]
The introduced commit essentially removes the limitation of setting ARC
tunables below allmem/32, and re-arranges the order of how some of the tunables
are parsed. Regressions would possibly show up as other tunables being ignored
or not being set correctly due to parsing errors. We should validate whether
other ARC related tunables are still being set correctly, and whether ZFS is
using the set values for the ARC memory thresholds.
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/zfs-linux/+bug/1964992/+subscriptions
--
Mailing list: https://launchpad.net/~kernel-packages
Post to : [email protected]
Unsubscribe : https://launchpad.net/~kernel-packages
More help : https://help.launchpad.net/ListHelp