NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: kern/57558: pgdaemon 100% busy - no scanning (ZFS case)



The following reply was made to PR kern/57558; it has been noted by GNATS.

From: mlelstv%serpens.de@localhost (Michael van Elst)
To: gnats-bugs%netbsd.org@localhost
Cc: 
Subject: Re: kern/57558: pgdaemon 100% busy - no scanning (ZFS case)
Date: Fri, 26 Apr 2024 14:19:37 -0000 (UTC)

 kardel%netbsd.org@localhost (Frank Kardel) writes:
 
 >Observed behavior:
 >pagedaemon runs at 100% (alreads at 550 minutes CPU and counting)
 
 I have local patches to avoid spinning. As the page daemon keeps
 data structures locked and runs at maximum priority, it prevents
 other tasks to release resources. That's only a little help,
 if the page daemon really cannot free anything, the system is still
 locked up to some degree.
 
 The main reason, that the page daemon cannot free memory is
 that vnodes are not drained. This keeps the associated pools
 busy and buffers allocated by the file cache.
 
 Of course, if ZFS isn't throttled (and it would be less so, if
 others make room), it would just expunge the rest of the system
 data, so any improvement here just shifts the problem.
 
 
 >Once uvm_availmem() falls below uvmexp.freetarg the pagedaemon unwedges 
 >from its tight loop as ZFS finally gives up its stranglehold on pool 
 >memory..
 
 I locally added some of the arc tunables to experiment with the
 free_target value. The calculation of arc_c_max in arc.c also
 doesn't agree with the comments.
 
 Later ZFS versions did change a lot in this area. Anything we
 correct, might need to be redone, when we move to a newer ZFS
 code base.
 


Home | Main Index | Thread Index | Old Index