Re: pkg upgrade, vfs.zfs.arc.free_target, vfs.zfs.arc.sys_free, vm.pageout_oom_seq [Notes about error messages during and RAM+SWAP requirements, UFS context]
- Reply: Mark Millard : "Re: pkg upgrade, vfs.zfs.arc.free_target, vfs.zfs.arc.sys_free, vm.pageout_oom_seq [Notes about error messages during and RAM+SWAP requirements, UFS context]"
- Reply: Graham Perrin : "pkg upgrade, vm.pageout_oom_seq: swap off: UFS, ZFS"
- In reply to: Graham Perrin : "Re: pkg upgrade, vfs.zfs.arc.free_target, vfs.zfs.arc.sys_free, vm.pageout_oom_seq"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 02 Sep 2025 18:19:41 UTC
On Aug 31, 2025, at 12:01, Graham Perrin <grahamperrin@gmail.com> wrote:
> On 31/08/2025 09:38, Mark Millard wrote:
>
>> …
>>
>> So 4 GiBytyes of RAM is insufficient, even with use of: vm.pageout_oom_seq=120
>>
>> Note: In this context increases is not going to help: it is way too little RAM
>> for pkg. (I was observing via top at the time.)
>>
>> If pkg continues to require such RAM+SWAP usage, FreeBSD is going to end up
>> requiring more than, say, 5 GiBytes of RAM+SWAP, even for UFS contexts.
>>
>>> …
>>
>> For reference, see:
>>
>> https://lists.freebsd.org/archives/freebsd-pkgbase/2025-August/000804.html
>>
>> with details of my test context (where swap was in use).
>
>
> Interesting.
>
> Here, with faster storage for a new guest, 1,024 MB base memory was enough – for both UFS and ZFS – as outlined below.
>
> ----
>
>
> VirtualBox
> bidirectional shared clipboard
> 1 GB memory
> EFI
> four processors
> PAE/NX
> VBoxSVGA
> FreeBSD-14.3-RELEASE-amd64-dvd1.iso
> disable host I/O cache
> vm.pageout_oom_seq=120
> UFS
> 3 G swap
> install all components
> pkbasify conversion before first boot (519 packages)
> first boot
> vm.pageout_oom_seq=120
The notes here are about the following sequence of 4 commands:
> pkg install -Fy firefox gitup htop hw-probe kde lsblk lynx nano pciutils plasma6-sddm-kcm roxterm sddm stressdisk uclcmd usbutils virtualbox-ose-additions xfce xorg
> pkg install -Uy firefox gitup htop hw-probe kde lsblk lynx nano pciutils plasma6-sddm-kcm roxterm sddm stressdisk uclcmd usbutils virtualbox-ose-additions xfce xorg
> pkg upgrade -fFqy
> pkg upgrade -fUy
In a 14.3-Stable amd64 UFS context the above command sequence:
1) Will probably OOM on a system with 1 GiByte of RAM but no swap space,
even for the first install command.
2) The sequence of 4 commands used (RAM+SWAP):
1024 MiBytes + 2312 MiBytes (observed maximum)
(So between 3 and 4 GiBytes of RAM+SWAP overall.)
3) So will OOM on a system with 2 GiByte of RAM but no swap space,
overall.
4) generates the error messages shown by:
# grep -e ^pkg: -e ^ELF ~/mmjnk-pkg-1GiByteRAM-3p5GiByteSWAPspace-test.txt | sort -u
ELF interpreter /libexec/ld-elf.so.1 not found, error 2
pkg: Cannot runscript DEINSTALL:No such file or directory
pkg: Cannot runscript POST-DEINSTALL:No such file or directory
pkg: Cannot runscript POST-INSTALL:No such file or directory
pkg: Cannot runscript PRE-INSTALL:No such file or directory
pkg: POST-INSTALL script failed
# grep -e ^pkg: -e ^ELF ~/mmjnk-pkg-1GiByteRAM-3p5GiByteSWAPspace-test.txt | wc -l
501
All these happen during the "pkg upgrade -fUy".
I give more details later below.
> 1353 packages
> 2601 steps
> success
> vm.pageout_oom_seq=12
> pkg upgrade -fUy
> success
>
> ----
>
>
> The same with ZFS. Success with, then without, the increased vm.pageout_oom_seq
Other information for the text context:
RAM: 1024 MiByte
RAM+SWAP: 3584 MiByte
vm.pageout_oom_seq: 120
# uname -apKU
FreeBSD FBSDamd64S 14.3-STABLE FreeBSD 14.3-STABLE stable/14-n272276-b06973a2f2a8 GENERIC amd64 amd64 1403506 1403506
# pkg -v
2.2.2
pkg was the only port-package already installed at the start of
the command sequence.
The counts of instances of the 6 individual error message types
were:
# grep -e ^ELF ~/mmjnk-pkg-1GiByteRAM-3p5GiByteSWAPspace-test.txt | wc -l
44
# grep -e "^pkg:.* DEINSTALL" ~/mmjnk-pkg-1GiByteRAM-3p5GiByteSWAPspace-test.txt | wc -l
21
# grep -e "^pkg:.*POST-DEINSTALL" ~/mmjnk-pkg-1GiByteRAM-3p5GiByteSWAPspace-test.txt | wc -l
378
# grep -e "^pkg: .* POST-INSTALL" ~/mmjnk-pkg-1GiByteRAM-3p5GiByteSWAPspace-test.txt | wc -l
50
# grep -e "^pkg: .* PRE-INSTALL" ~/mmjnk-pkg-1GiByteRAM-3p5GiByteSWAPspace-test.txt | wc -l
2
# grep -e "^pkg: POST-INSTALL script failed" ~/mmjnk-pkg-1GiByteRAM-3p5GiByteSWAPspace-test.txt | wc -l
6
The RAM+SWAP usage for the sequence progressed as below,
where a top variant monitored system Maximum Observed
Used figures:
# pkg install -Fy firefox gitup htop hw-probe kde lsblk lynx nano pciutils plasma6-sddm-kcm roxterm sddm stressdisk uclcmd usbutils virtualbox-ose-additions xfce xorg
. . .
Number of packages to be installed: 834
. . .
Swap: 121500Ki MaxObsUsed,
and 1085Mi MaxObs(Active+Wir+Lndry+SwapUsed)
with max 1085Mi (Active+Wir+Lndry+SwapUsed+InAct) at the time
# pkg install -Uy firefox gitup htop hw-probe kde lsblk lynx nano pciutils plasma6-sddm-kcm roxterm sddm stressdisk uclcmd usbutils virtualbox-ose-additions xfce xorg
. . .
Number of packages to be installed: 834
. . .
Swap: 585012Ki MaxObsUsed,
and 1489Mi MaxObs(Active+Wir+Lndry+SwapUsed)
with max 1521Mi (Active+Wir+Lndry+SwapUsed+InAct) at the time
# pkg upgrade -fFqy
Swap: 1760Mi MaxObsUsed,
and 2726Mi MaxObs(Active+Wir+Lndry+SwapUsed)
with max 2726Mi (Active+Wir+Lndry+SwapUsed+InAct) at the time
NOTE: The upgrade command below also involved all the FreeBSD-* base
packages as well. In my context that was all of them:
# pkg info -g "FreeBSD-*" | wc -l
534
# pkg upgrade -fUy
Checking for upgrades (1369 candidates): 100%
Processing candidates (1369 candidates): 100%
Checking integrity...
. . .
Number of packages to be upgraded: 534
Number of packages to be reinstalled: 835
[1/2628] Deinstalling FreeBSD-acct-dbg-14.snap20250831004235...
. . .
Swap: 2312Mi MaxObsUsed,
and 3192Mi MaxObsMaxObs(Active+Wir+Lndry+SwapUsed)
with max 3225Mi (Active+Wir+Lndry+SwapUsed+InAct) at the time
So, absent SWAP being enabled, it takes a 4 GiByte system
to avoid OOM activity for the whole sequence in my context.
Otherwise RAM+SWAP needs to be about that big.
Other experiments with a different set of port-packages had
an example of needing a 6 GiByte system if SWAP was not
enabled. Otherwise RAM+SWAP needs to be about that big.
I've no clue what combination of port-packages would
need the most RAM+SWAP for "pkg upgrade -fUy".
As stands, various pkg commands may need to have documented
warnings about RAM+SWAP requirements.
===
Mark Millard
marklmi at yahoo.com