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

From: <bugzilla-noreply_at_freebsd.org>
Date: Wed, 06 Mar 2024 18:12:20 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=275594

--- Comment #73 from Anton Saietskii <vsasjason@gmail.com> ---
(In reply to Mark Millard from comment #72)

TBH, I didn't really get what do you mean by "kind" of hang, but perhaps
following will be helpful:

(Vanilla releng/13.3 currently.)
Machine is running a few daemons with very stable memory footprint (built-in
ones, like sshd, ntpd + couple of 3rd party, like net/wifibox,
net-p2p/transmission daemon). Nothing related to memory has been tuned, and
there's always ~2-3G of free RAM and zero swap usage.
Then I start `poudriere bulk`, and as soon as some big distfile (e.g. firefox,
libreoffice) begins extraction to tmpfs, arc_prune+vnlru start recklessly eat
CPU^W^W^W do their job trying to evict some ARC for me. System becomes slow and
stuttering followed by a full unresponsiveness — network stops, disk activity
stops, no reaction on physical console.
After several minutes (I guess when distfile finishes extraction), everything
returns to normal like nothing happened with no any log messages. Then
poudriere build continues with eventual arc_prune+vnlru running as tmpfs being
filled with object files produced by compiler. No a single byte of swap usage
observed during this.

So, it's like what you described, but for me issue hits faster and harder.
Looks like CPU just have no time to execute anything beyond those 2 and
possibly some other kernel threads.

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