OpenBSD Compile Custom Kernel
Let’s Compile a Custom Kernel for OpenBSD … and let’s check if we can tune the Process it with multiple Processors.
get Sources and prepare Custom Kernel
cd /usr/src
ftp https://cdn.openbsd.org/pub/OpenBSD/$(uname -r)/sys.tar.gz
tar xfz sys.tar.gz
rm xfz sys.tar.gz
cd /sys/arch/$(uname -m)/conf
cp GENERIC.MP CUSTOM.MP
config CUSTOM.MP
cd ../compile/CUSTOM.MP
-> with config CUSTOM.MP, you can enable disable Components which will be built into your Custom Kernel. Wlan Drives for a VirtualServer, as example, does not make sense.
Compile
start the build process without arguments. One Kernel is used …
make clean
time make
… as we can see in the “htop”. 1 CPU in used, the Load of the Systems is also 1.
Time to Go: 38min … (38m00.28s real 29m30.71s user 8m44.51s system)
Let’s try with 4 Cores
Most (Virtual) Machines got multiple CPU’s, respectively Cores. Let’s try to Speedup the Build Process with enabling Multiple Cores. The “-j” Flag is sused to tell to the Compile how many Core it should use.
make clean
time make -j 4
make install
uname -a
Time to Go: 9.30min (9m35.44s real 27m52.17s user 9m03.97s system)
and finally with 16 Cores
Compile the Kernel with all possible Cores. In our Example, we have 16 Cores and we wanne use them!
make clean
time make -j $(sysctl hw.ncpufound |cut -d= -f 2)
make install
uname -a
Time to Go: 4:30 (4m26.83s real 39m18.96s user 18m59.31s system)
Install and Reboot
and finally, install the Kernel, reboot and check the loaded Kernel after reboot
make install
uname -a
# -> OpenBSD pbuilder-demo 7.1 GENERIC.MP#3 amd64
reboot
uname -a
# -> OpenBSD pbuilder-demo 7.1 CUSTOM.MP#1 amd64
Compare with Vultr PowerBox
- 8 vCPU / AMD EPYC-Rome Processor
- 16 GB RAM
- 350 GB Disk
- -> 96 USD/Month
Time with
- 1 CPU: 14m09.98s
- 8 CPU: 4m03.12s
Happy Compiling !
Any Comments ?
sha256: 3ad6ce823e998b70dff32be250231d5bf24aded5837d1584cf2855849274685b