void <void_at_f-m.fm> wrote on
Date: Sun, 19 Oct 2025 10:57:57 UTC :

> The system was only running poudriere when the reboot occurred.
> It's a hp-proliant-g8 2u rackmount server. Xenon E5-2690v2 (x2)
> 
> On Sat, Oct 18, 2025 at 06:15:59PM -0700, Mark Millard wrote:
> >>> Do you use anything like:
> >>>
> >>> # Delay when persistent low free RAM leads to
> >>> # Out Of Memory killing of processes:
> >>> vm.pageout_oom_seq=120
> 
> Yes
> 
> >>> # For plunty of swap/paging space (will not
> >>> # run out), avoid pageout delays leading to
> >>> # Out Of Memory killing of processes:
> >>> #vm.pfault_oom_attempts=-1
> 
> That is also set.

FYI: that special value effectively disables use of
vm.pfault_oom_wait .

> >>> #vm.pfault_oom_wait= 10
> 
> This isn't set in loader or sysctl.conf, but it is that value,
> so I guess it's the default. For swap, my sysctl.conf has these:
> 
> # swap
> vm.pageout_oom_seq=120
> vm.pfault_oom_attempts=-1
> vm.pageout_update_period=0

FYI: I've always used the default for vm.pageout_update_period .
I've never investigated what setting it to 0 does.

> >>> (Mine are in /boot/loader.conf .)
> 
> Why is that (asking because I thought using loader.conf was being
> discouraged)

From man sysctl:

     -T           Display only variables that are settable via loader
                  (CTLFLAG_TUN).

     . . .

     -W           Display only writable variables that are not statistical.
                  Useful for determining the set of runtime tunable sysctls.

I'm not aware of discouraging variables that are settable via the
loader from being so set. I keep track of what settings I use that
are settable via the loader vs. not by where I place them.

# sysctl -Td vm.pageout_oom_seq vm.pfault_oom_attempts vm.pfault_oom_wait 
vm.pageout_update_period
vm.pageout_oom_seq: back-to-back calls to oom detector to start OOM
vm.pfault_oom_attempts: Number of page allocation attempts in page fault 
handler before it triggers OOM handling
vm.pfault_oom_wait: Number of seconds to wait for free pages before retrying 
the page fault handler
vm.pageout_update_period: Maximum active LRU update period

# sysctl -Wd vm.pageout_oom_seq vm.pfault_oom_attempts vm.pfault_oom_wait 
vm.pageout_update_period
vm.pageout_oom_seq: back-to-back calls to oom detector to start OOM
vm.pfault_oom_attempts: Number of page allocation attempts in page fault 
handler before it triggers OOM handling
vm.pfault_oom_wait: Number of seconds to wait for free pages before retrying 
the page fault handler
vm.pageout_update_period: Maximum active LRU update period

So, for these 4, setting is the loader is allowed but so is setting
later in FreeBSD.

> I'm attempting to build this port again after clearing obj ccache dirs
> then rebuilding the system then deleting the builder, its pkgs & logs
> then recreating the builder from the obj of the rebuilt system.
> 
> it's got as far as building electron37 right now. top looks like this
> 
> last pid: 7554; load averages: 9.96, 10.01, 10.00 up 0+17:11:14 11:53:51
> 106 processes: 11 running, 95 sleeping
> CPU: 48.2% user, 0.0% nice, 1.9% system, 0.0% interrupt, 49.9% idle
> Mem: 38G Active, 5202M Inact, 12G Wired, 1267M Buf, 70G Free
> ARC: 5946M Total, 2664M MFU, 2426M MRU, 645K Anon, 40M Header, 781M Other
> 4379M Compressed, 6795M Uncompressed, 1.55:1 Ratio
> Swap: 4034M Total, 4034M Free

So far, running out of RAM+SWAP does not look to be involved.

===
Mark Millard
marklmi at yahoo.com


Reply via email to