Skip to content
Fran Gonzalez
← Back to blog
·Clanker·7 min read

Comparing a used Mac Mini, ARM64 hardware, and AMD x86 for GitLab CI

A comparison of a used M1/M2 Mac Mini, ARM64 servers, and AMD x86 hardware for a GitLab CI runner with x86_64 production images.

Some matmuls wrote this slop, sorry. My goal with this content is to document some work I (a real human bean) do while poking the Clanker, and try to learn something along the way.

Comparing a used Mac Mini, ARM64 hardware, and AMD x86 for GitLab CI

I compared a used Mac Mini M2 listed at €500 with 16 GB RAM and a 512 GB SSD against Linux AMD hardware. The Mac Mini runs iOS builds natively, runs ARM64 Docker through Colima, and can run an Android emulator. Its estimated electricity cost was approximately €2 per month.

I selected the AMD option for the current workload.

Note

Hardware prices, availability, performance measurements, and software support described here are observations from July 2026. They require rechecking before a purchase.

Mac Mini capabilities

A used Mac Mini can cover the mobile capabilities listed in this comparison:

CapabilityMac Mini M1/M2Linux AMD boxNotes
iOS builds (Xcode)✅ Native❌ Requires macOSmacOS is required for Xcode builds.
Android APK builds✅ Gradle + SDK✅ Gradle + SDKBoth work. Mac does not need KVM for compilation.
Android emulator (Maestro)ARM64 image, Hypervisor.frameworkx86_64 image, KVMThe Mac avoids ARM64-to-x86_64 translation.
iOS simulator (Maestro)✅ Native❌ Requires macOSRelevant if iOS Maestro targets are added.
ARM64 Linux Docker builds✅ Via Colima (VM)❌ Needs ARM64 hardwareOne machine can cover mobile and ARM64 server CI.
x86_64 Linux Docker builds❌ Emulated (QEMU, 3-10× slower)✅ NativeThe architecture difference is the constraint.

At €500 upfront and approximately €2 per month in electricity, the Mac Mini adds native iOS build support. The current team builds release APKs on development laptops, runs Maestro locally, and releases iOS manually, so iOS CI was outside the current workload. The purchase would add capacity for a future workflow rather than address an existing job.

As a general ARM64 CI runner, it has two constraints for this workload.

Constraint 1: 16 GB RAM, soldered

The 16 GB Mac Mini M1/M2 configuration costs less than the 24 GB configurations considered here. An 8 GB configuration leaves less memory for concurrent CI processes; Xcode builds in this comparison used 6-8 GB. At 16 GB:

  • macOS consumes ~3 GB
  • Colima VM needs ~4 GB
  • One Docker build job: 8 GB limit = workable
  • Two Docker build jobs: the 16 GB total leaves no memory for the host and Colima VM after two 8 GB job limits

concurrent=1 fits within this memory budget. concurrent=2 would require reducing the per-job memory cap below the level used by the Maven builds. That is half the concurrency of the current closet i5 box.

Constraint 2: Production images use x86_64

The backend, API, and CMS deploy to x86_64 AWS instances. Building x86_64 Docker images on an ARM64 Mac runs every RUN instruction under QEMU user-mode emulation. A Maven backend build that takes 45 seconds natively takes 3-7 minutes under QEMU in this comparison. With approximately 260 Docker build jobs per month, this increases the expected monthly build time.

Multi-arch images (ARM64 + x86_64) built with docker buildx can mitigate the architecture mismatch, but the x86_64 variant still runs under QEMU. The mobile data workload already runs on AWS Graviton, while the backend migration remains pending.

The Mac Mini fits the iOS build and ARM64-native runner use cases. It is less suitable as a general-purpose replacement for an x86_64 CI box while the production stack remains x86_64.

The non-macOS ARM64 landscape

For workloads that do not require macOS, the comparison included these ARM64 hardware options:

DeviceCPURAMPriceDocker?Linux?CI-worthy?
Raspberry Pi 54× Cortex-A768 GB~€100Approximately 6× slower than the i5 in this comparison.
Orange Pi 5 Max8-core RK358816 GB~€170⚠️ ~3× slower. Borderline.
MINISFORUM MS-R112-core CIX P1up to 64 GB~€560ARM64 option with 64 GB; measured throughput matched the i5.
Geekom QS1 ProSnapdragon X Eliteup to 64 GB~€800⚠️ Beta⚠️ Maturing⚠️ Faster than our i5 but Linux support is not production-ready.
Ampere Altra Dev Kit32-128 coresup to 768 GB€1,500-4,000✅ Server-class. Far beyond this CI workload’s requirements.

The MINISFORUM MS-R1 has 12 ARM cores, up to 64 GB RAM, standard UEFI boot, Debian support, a PCIe x16 slot, and listed power consumption of approximately 20 W. At approximately €560, it is one ARM64 hardware option for CI. Jeff Geerling reviewed the platform.

The relevant limitation is throughput: the MS-R1 roughly matches the current i5-7500T in this comparison. The €560 purchase provides more RAM headroom and native ARM64, but no measured speed increase. A used AMD Ryzen office PC at €350 measured approximately 3× faster in the same comparison.

ARM cloud VPS availability

The cloud offers checked in this comparison used either provider-designed ARM instances or Ampere-based VPSs.

netcup listed Altra Max servers at €7.90-40.66 per month, and the ARM offering was sold out at the time of this comparison. Hetzner’s CAX line uses Ampere Altra in a shared-vCPU model, so performance depends on host contention.

Provider availability depends on capacity and allocation. The ARM offers checked here had fewer available listings than the x86 offers.

ServeTheHome reported replacing its planned ARM servers with AMD EPYC in 2025. The article discusses on-premise performance, software support, and core density as factors in that decision.

AMD x86 comparison

FactorARM64AMD x86_64
Server CPU vendors representedAmpereAMD, Intel
Fabrication representedLimited vendor setMultiple manufacturing options in this comparison
OEM ecosystemFewer boards in this comparisonMultiple server and PC vendors represented
Used marketFew options in this comparisonBroad availability. A 2-year-old Ryzen office PC costs €350.
Supply chain scope in this comparisonOne primary merchant vendorTwo primary x86 vendors
Cloud availability in reviewed offersSold out at netcup, shared at HetznerMultiple x86 offers reviewed
Cloud availability (hyperscaler)Hosted ARM instances availableHosted x86_64 instances available
Docker CI performance in this comparisonDepends on availability and workloadNative x86_64 execution

Decision

I selected a Hetzner dedicated box with a Ryzen 5 3600 and 64 GB RAM for €65.70/month. It uses the same AMD x86_64 architecture as the existing machines, the same Docker configuration, and the same pipeline structure. The listed CPU benchmark is approximately 3× the closet runner’s result.

For mobile CI, development laptops remain the build machines. A used Mac Mini M2 at €500 would satisfy the macOS requirement for iOS CI, but it would still require an x86_64 runner for the current production image builds.

For this workload, ARM64 is relevant when the target artifacts or runtime are ARM64. The current production images and existing runner are x86_64. AMD x86_64 hardware preserves that architecture and has multiple hardware and hosting options.

References

This post was written with AI assistance.