• An experiment building two devel/electron* in parallel vs. in sequence, prerequisite packages already in place in the package repository

    From Mark Millard@marklmi@yahoo.com to muc.lists.freebsd.ports on Sat Jul 11 07:46:42 2026
    From Newsgroup: muc.lists.freebsd.ports

    This is partially prompted by a report on discord of "will spend more
    time in DISK_WAIT than actually building" and that, therefore, using MUTUALLY_EXCLUSIVE_BUILD_PACKAGES was better. I suspected that the type
    of storage media was notably involved in such results, though the
    details were not given. These tests used a PCIe Optane media.

    Note: In no way does this experiment deal with the issues involved in
    building 35,000+ port packages overall, something that the official
    build servers have to be configured to deal with.


    Comparison/contrast of build times for electron39 and electron42
    (after prerequisites) built 2 ways (both via poudriere-devel use):

    ) one builder active at a time, building one electron* at a time
    (One way of doing with is via MUTUALLY_EXCLUSIVE_BUILD_PACKAGES)

    ) two builders active at the same time, both electron*'s building
    (they must not be in MUTUALLY_EXCLUSIVE_BUILD_PACKAGES)

    2 Parallel builders:
    . . .
    [00:00:09] [29] [00:00:00] Building devel/electron39 |
    electron39-39.8.10_2
    [00:00:09] [30] [00:00:00] Building devel/electron42 | electron42-42.5.1 [02:28:06] [29] [02:27:57] Finished devel/electron39 |
    electron39-39.8.10_2: Success
    [02:57:44] [30] [02:57:35] Finished devel/electron42 |
    electron42-42.5.1: Success
    . . .
    [02:57:56] [main-ZNV4-bulk_a-alt] [2026-07-10_16h59m46s] [committing]
    Time: 02:57:54
    Queued: 133 Inspected: 131 Ignored: 0 Built: 2 Failed: 0
    Skipped: 0 Fetched: 0 Remaining: 0
    [02:57:56] Logs: . . .
    [02:57:56] Cleaning up
    [02:57:56] Stopping up to 32 builders
    [02:57:56] Unmounting file systems

    Note: MaxObs is short for: Maximum Observed
    Each Load average, MaxObs: 77.67, 65.09, 64.87
    13255Mi MaxObsUsed(SwapUsed)

    So: (192*1024+13255) MiBytes == 209863 MiBytes, i.e., a little under 205 GiBytes for (RAM+SWAP) usage.

    Note: the entries in TMPFS_BLACKLIST do not eliminate all tmpfs use:
    8.12 GiB and 8.20 GiB were reported.


    Only one builder:
    . . .
    [00:00:15] [01] [00:00:00] Building devel/electron39 |
    electron39-39.8.10_2
    [01:14:07] [01] [01:13:52] Finished devel/electron39 |
    electron39-39.8.10_2: Success
    [01:14:17] [01] [00:00:00] Building devel/electron42 | electron42-42.5.1 [02:57:13] [01] [01:42:56] Finished devel/electron42 |
    electron42-42.5.1: Success

    Each Load average, MaxObs: 47.91, 33.03, 32.80
    27276Ki MaxObsUsed(SwapUsed) NOTE: Swap was still in use after prior
    bulk run: not new
    41913Mi MaxObs(Act+Lndry+SwapUsed)
    110606Mi MaxObs(A+Wir+L+SU), 125285Mi (A+W+L+SU+InAct)

    So: (125285/1024) GiBytes is somewhat under 123 GiBytes (RAM+SWAP)


    For reference:

    7950X3D with 192 GiBytes of RAM and 512 GiBytes of SWAP, so
    704 GiBytes RAM+SWAP. 16 SMT cores, so 32 FreeBSD OS CPUs.
    The only in use media is a PCIe Optane (SSDPED1D015TAY):

    # gpart show -pl /dev/nda2
    . . .
    534528 1073741824 nda2p2 OptBswp364 (512G)
    1074276352 1845493760 nda2p3 OptBzfs (880G)
    . . .

    The electron*'s are listed in the TMPFS_BACKLIST (as is a lot more). USE_TMFS=all was set as well.

    ALLOW_MAKE_JOBS= with no MAKE_JOBS_NUMBER_LIMIT or the like
    explicitly set. So: effectively 32 per builder (when ports
    respect such limits anyway).

    The poudriere-devel jail is a personal non-debug build of main (WITH_MALLOC_PRODUCTION in use). The booted non-debug kernel is from
    upstream pkgbase main. The booted world is from upstream pkgbase main,
    and, so, is a debug build of the world.

    No use of ccache or the like.


    Note: Starting with an empty repository, it took a little under 1 hr 57
    min to build the prerequisite port packages (parallel build with up to
    32 builders allowed to be active, ALLOW_MAKE_JOBS in use, as above),
    making the overall time somewhat under 5 hours.
    --
    ===
    Mark Millard
    marklmi at yahoo.com



    --
    Posted automagically by a mail2news gateway at muc.de e.V.
    Please direct questions, flames, donations, etc. to news-admin@muc.de
    --- Synchronet 3.22a-Linux NewsLink 1.2