Re: speedup build time
- In reply to: Maku Bex: "RE: speedup build time"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 28 Oct 2024 02:10:48 UTC
On Sun, Oct 27, 2024 at 08:47:55PM -0500, Maku Bex wrote:
> Hi David,
>
> * What (if any) "max_jobs" (make's "-j" parameter) are you using? 16
>
> * For a 16T system, I expect I would start with a value of around 28. Shouldn't this number be equal to $(nproc --all)?
Not necessarily. You might want to watch the output of "top" as the
machine is busy, and try changing the max_jobs parameter. Basically, if
the machine is spending "a lot" of time during "make buildworld" (&
friends) in "system" time, well ... that's likely (mostly) overhead. I
typically (mostly, and from memory) see 0% idle with <2% system CPU.
You almost certainly don't want a thread to need to hunt down the next
bit of work to be done when the current bit's time slice is up or it
goes into a wait: that next work should be queued up, ready to go.
> * Are you using make's "meta" mode? I do. Yes.
>
> * Can you get more memory for that system? Yes, I can bump it to 32GB. This is a Dell OptiPlex 7080 Micro, and not sure if it is worth upgrading the other components.
I suspect that additional memory would be "helpful."
> If your laptop can complete the builds in such a small amount of time, then there's either something wrong with my machine or the config files. Oh! The build just finished as I was typing this reply and...(not for the weak hearts):
:-}
> --------------------------------------------------------------
> >>> World built in 32437 seconds, ncpu: 16
> --------------------------------------------------------------
>
> Here are the contents of:
>
> make.conf:
>
> CPUTYPE?=icelake-client
> CFLAGS= -O2 -pipe -march=${CPUTYPE}
> #CXXFLAGS=${CFLAGS}
> MACHINE_CPU+= avx512 avx2 avx sse42 sse41 ssse3 sse3 f16c
> MAKE_JOBS_NUMBER= 16
> BATCH=yes
> WRKDIRPREFIX=/var/ports/tmp
> CCACHE_DIR=/var/ccache/tmp
>
> OPTIONS_UNSET+= QT5 QT6 CUPS VESA SCFB TWM XCONSOLE XCLOCK GNOME KDE EXAMPLES \
> DEBUG ASPELL NLS DOCS
> -------------------------------------------------------------------------------
> src-env.conf:
>
> WITH_META_MODE=yes
> WITH_CCACHE_BUILD=yes
> #WITH_DIRDEPS_BUILD=yes <<fails
> #WITH_DIRDEPS_CACHE=yes <<fails
>
> WITHOUT_TALK=yes
> WITHOUT_TELNET=yes
> WITHOUT_TFTP=yes
> WITHOUT_IPFILTER=yes
> WITHOUT_IPFW=yes
> WITHOUT_FLOPPY=yes
> WITHOUT_GAMES=yes
> WITHOUT_BLUETOOTH=yes
> WITHOUT_EE=yes
> WITHOUT_FREEBSD_UPDATE=yes
> WITHOUT_GPIO=yes
> WITHOUT_MAIL=yes
> WITHOUT_TESTS=yes
> WITHOUT_AMD=yes
> WITHOUT_CLANG=yes
> WITHOUT_DEBUG_FILES=yes
> WITHOUT_EXAMPLES=yes
> WITHOUT_HYPERV=yes
>
> Happy Hacking,
> ....
My config files are much simpler (these are for stable/14; head is
nearly the same):
/etc/make.conf:
NET_SNMP_SYS_CONTACT="david@catwhisker.org"
NET_SNMP_SYS_LOCATION="variable"
NET_SNMP_LOGFILE=/var/log/snmpd.log
NET_SNMP_PERSISTENTDIR=/var/net-snmp
EXTRA_PATCH_TREE=/usr/local/port_patches
WITH_BSD_JDK=TRUE
WITHOUT_RUNTIME_CPUDETECTION= YES
WITHOUT_CJK= YES
NO_SUID_XSERVER=YES
INSTALL_AS_NCFTP=yes
OPTIONS_SET=OPTIMIZED_CFLAGS
DISABLE_VULNERABILITIES=yes
FORCE_PKG_REGISTER= YES
PKG_NOCOMPRESS=1
SENDMAIL_MC=/etc/mail/laptop.mc
WITH_DEBUG_PORTS=x11/nvidia-driver
/etc/src-env.conf:
WITH_META_MODE=yes
/etc/src.conf:
KERNCONF=CANARY
PORTS_MODULES+=graphics/drm-61-kmod
.MAKE.META.IGNORE_PATHS += /usr/local/etc/libmap.d
IWN_DEBUG=1
IEEE80211_DEBUG=1
BATCH_DELETE_OLD_FILES=1
WITHOUT_REPRODUCIBLE_BUILD=yes
WITHOUT_LLVM_TARGET_ALL=yes
[Some of the above may well be a bit dated; I am not always good about
cleaning up after an experiment.]
Peace,
david
--
David H. Wolfskill david@catwhisker.org
It has been said that history repeats itself. This is perhaps not quite
correct; it merely rhymes. -- Theodor Reik
See https://www.catwhisker.org/~david/publickey.gpg for my public key.