mongodb-avx-qemu.md 2.7 KB

Meteor podcast about using MongoDB at unsupported CPUs

MongoDB Operating System Support precompiled binaries

  • arm64: Only Ubuntu. No Raspberry Pi OS, Alpine Linux.
    • But installing .deb packages to Raspberry Pi 5 running Raspberry OS 64bit can have hardware running cooler, than on Ubuntu.
  • For anything else, see MongoDB download page.

MongoDB CPU support

New MongoDB supports newer CPUs only, like:

  • x86_64 that have AVX instructions, from MongoDB 5 and later
  • ARMv8.2-A microarchitecture, from MongoDB 4.4.19, 5.0, 6.0 and later, like:
    • Raspberry Pi 5
    • OrangePi 5
    • Apple Silicon arm64

Old MongoDB 4.4.18 supports old CPUs, like:

Info about requiring newer arm64:

Detecting does x86_64 CPU support AVX:

Error running MongoDB 8 at RasPi4, when not using Qemu:

December 06 11:48:49 rpi4b systemd[1]: Started mongod.service - MongoDB Database Server.
December 06 11:48:53 rpi4b mongod[3749]: /usr/bin/mongod: line 4:  3750 Illegal instruction     (core dumped) /usr/bin/mongodreal --co>
December 06 11:48:53 rpi4b systemd[1]: mongod.service: Main process exited, code=exited, status=132/n/a
December 06 11:48:53 rpi4b systemd[1]: mongod.service: Failed with result 'exit-code'.

a) Prebuilt binary

MongoDB 7.3.4 for RasPi4 and older:

b) Compile MongoDB, takes a lot of time

CrossCompiling MongoDB from x86_64 to ARMv8.0 Cortex A53/A55/A72 like RasPi4 and older:

Compiling MongoDB from x86_64 to x86_64 CPUs that does not have AVX instructions:

c) Run MongoDB with Qemu, that supports newest CPU features

qemu-user can run single Linux executeable for many architectures. It does not emulate full OS like qemu-system.

Running MongoDB with Qemu on x86_64 CPU that does not support AVX, like Intel Core 2 Duo:

Running MongoDB with Qemu on older arm64, like RasPi4 and older RasPi: