Roland's homepage

My random knot in the Web

Buildworld benchmark on my new workstation

As a real-world benchmark I rebuilt the FreeBSD OS after the most recent published vulnerabilities.

Preparations

When building FreeBSD, I tend to disable stuff that I don’t need. This reduces the build time and also is good for security; features that aren’t there cannot be part of a possible attack surface.

Generally, I have the following features disabled;

acct, amd, atm, autofs, bhyve, blacklist, bluetooth, bootparamd, bootpd, bsnmp, ccd, cddl, ctm, ctf, cxgbetool, debug_files, finger, floppy, freebsd_update, ftp, gcov, gdb, googletest, hast, hyperv, inetd, ipfilter, iscsi, kernel_symbols, legacy_console, lib32, lpr, mlx5tool, module_drm, module_drm2, ndis, netgraph, nls, ntp, openssh, pf, portsnap, profile, quotas, rbootd, sendmail, syscons, talk, telnet, tests, tftp, timed, zoneinfo

That is e.g. acct being disabled means that WITHOUT_ACCT=true is in /etc/src.conf. See src.conf(5) for the details.

Build procedure

The build procedure that I used is as follows.

# cd /usr/src/
# make -j4 buildworld buildkernel
# make installkernel
# mergemaster -p
# make -j4 installworld
# mergemaster -i -F -U
# make delete-old -DBATCH_DELETE_OLD_FILES
# make delete-old-libs -DBATCH_DELETE_OLD_FILES

Note that I also rebuild and reinstall the graphics/drm-fbsd12.0-kmod and misc/zoneinfo ports. This is not part of the measured time, however.

Results and discussion

From the build log:

>>> World build started on Thu Aug  6 13:36:31 CEST 2020
>>> World build completed on Thu Aug  6 14:38:56 CEST 2020

So re-building the world took about an hour and three minutes.

And:

>>> Kernel build for GENERIC started on Thu Aug  6 14:38:56 CEST 2020
>>> Kernel build for GENERIC completed on Thu Aug  6 14:43:59 CEST 2020

The kernel build took about five minutes.

These short build times are mainly down to three factors. Estimated from most to least important:

  • Using an (NVME) SSD.
  • Relatively fast i7-7700 CPU (even though hyperthreading is disabled).
  • A significant amount of disabled features.

For comments, please send me an e-mail.


←  Writing speed on FreeBSD 12.1-STABLE amd64 Using a USB headset on FreeBSD  →