[Bug 275594] High CPU usage by arc_prune; analysis and fix

From: <bugzilla-noreply_at_freebsd.org>
Date: Thu, 07 Dec 2023 19:06:03 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=275594

--- Comment #2 from Seigo Tanimura <seigo.tanimura@gmail.com> ---
> Why did you change this parameter?

In my test case, the ARC pruning process has the risk of hitting many non-ZFS
vnodes.  vfs.vnode.vnlru.max_free_per_call has hence been increased in the hope
to reach the ZFS vnodes with the better chance within a single iteration.

> USE_TMPFS="wrkdir data localbase"

The directories under the really heavy load are covered by tmpfs(5).


> What happens if you leave it at the default value?

I started "poudriere bulk" about an hour ago with:

- vfs.vnode.vnlru.max_free_per_call: 10000 (out-of-box)
- vfs.zfs.arc.prune_interval: 0 (cancel the ARC pruning interval)

The rest of the setup is the same as in the description.

After about 50 minutes from the start, arc_prune started to hog the CPU up to
90 - 100%.  The free_retry and free_giveup counters are increasing in the same
pace as free_call.

I will continue this build until the end, but with no hope for the recovery of
arc_prune.

-- 
You are receiving this mail because:
You are the assignee for the bug.