[Bug 275594] High CPU usage by arc_prune; analysis and fix
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 02 Apr 2024 17:08:46 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=275594 --- Comment #104 from Mark Millard <marklmi26-fbsd@yahoo.com> --- (In reply to Anton Saietskii from comment #102) I'll note that rust builds are massive users of temporary disk space in wrkdir, even for single-builder/single-make-job builds: I've seen nearly 30 GiByte and have seen well over 20 GiBytes for a long time. When USE_TMPFS= effectively includes wrkdir, this competes for RAM+SWAP via the TMPFS use. The highest usage is towards the end (packaging). Another issue is that historically when the builder completes, such TMPFS space use stick around until/unless the specific builder starts another build. I historically have provided lots of SWAP so that RAM need not cover such and RAM+SWAP had lots of room. But there is also the poudriere.conf technique of: # List of package globs that are not allowed to use tmpfs for their WRKDIR # Note that you *must* set TMPFS_BLACKLIST_TMPDIR # EXAMPLE: TMPFS_BLACKLIST="rust" TMPFS_BLACKLIST="rust" # The host path where tmpfs-blacklisted packages can be built in. # A temporary directory will be generated here and be null-mounted as the # WRKDIR for any packages listed in TMPFS_BLACKLIST. # EXAMPLE: TMPFS_BLACKLIST_TMPDIR=${BASEFS}/data/cache/tmp TMPFS_BLACKLIST_TMPDIR=${BASEFS}/data/cache/tmp that avoids the TMPFS based wrkdir space use just for rust. (Of course, one needs the actual storage space in such cases.) With rust avoiding TMPFS wrkdir use, I've observed llvm18 taking more RAM+SWAP than rust, even with some llvm18 default options disabled. (I do not have a list of packages with such large wrkdir space requirements but would not be surprised if there are several more around, some possibly not being compiler toolchains. But I do not normally build a wide variety of large-builder software that are not compiler toolchain related.) -- You are receiving this mail because: You are the assignee for the bug.