What can I learn about data that is staying paged out? (There is a more specific poudriere bulk related context given.)

From: Mark Millard <marklmi_at_yahoo.com>
Date: Sun, 05 Jun 2022 19:42:23 UTC
I have a poudriere bulk -a -c going on a 8 Gibyte
aarch64 system. top has been showing an occasionally
increasing swap usage but never any sizable decreases.
Over 5800 ports have built so far. The context is UFS
only. The system is running a non-debug build of main.

Part of the context is ( in /etc/sysctl.conf ):

vm.swap_enabled=0
vm.swap_idle_enabled=0

Also ( in /usr/local/etc/poudriere.conf ):

USE_TMPFS="data"

poudriere's TMPFS reports normally total under 128
KiBytes across the 4 builders.

For reference, example figures . . .

A top variant shows:

Swap: 30720Mi Total, 306816Ki Used

vmstat -s shows:

    78152 swap pager pages paged out

Note: (78152*4096)/1024 == 312608Ki

So nearly all of the "swap pager pages paged out"
pages are still sitting out in the used swap/paging
space. Thus, the usage is not held by user processes
or is held via very long running processes or is
not directly tied to user processes --or some mix.

The variant of top reports never having observed
more than: 6658Mi MaxObs(Act+Wir+Lndry).
("MaxObs" is short for "Maximum Observed".)
Such high usage is for a bounded time, long past
at this point. (Until some combination of port
builds ends up active that uses such.)

So I'm curious:

What can I learn about the data that is staying
paged out (and is gradually growing)? How can I
learn it?


Other notes:

The poudriere jail being built is:

# poudriere jail -jmain-CA7-bulk_a -i
Jail name:         main-CA7-bulk_a
Jail version:      14.0-CURRENT
Jail arch:         arm.armv7
Jail method:       null
Jail mount:        /usr/obj/DESTDIRs/main-CA7-poud-bulk_a
Jail fs:           
Jail updated:      2022-05-23 02:21:24
Jail pkgbase:      disabled

(Just in case the armv7 jail usage or the null method
or such is important to the issue.)

===
Mark Millard
marklmi at yahoo.com