← All posts

Is ARM good for servers? How to tell if an ARM VPS suits your service

Is ARM good for servers? For most of what people host, yes: web apps, APIs, databases and containers all run natively on 64-bit ARM, and an ARM VPS in the UK is now an ordinary choice rather than an experiment. But "most" is not "all", and the things that do not run are worth knowing before you order, not after. This guide sorts the common cases into yes, check, and no.

We are biased, and we say so up front: VPS GB runs only ARM. That is also why we would rather tell you ARM is wrong for you than sell you a server your software cannot run on.

What "ARM server" means here

When people say ARM server they usually mean a 64-bit ARM processor running Linux. The architecture is called arm64 by Debian, Ubuntu, Docker and Go, and aarch64 by the Linux kernel, Red Hat-family distributions and GCC. They are the same thing. If a download page offers arm64 or aarch64, it will run on an ARM64 VPS.

Our servers use Ampere Altra processors, built on Arm's Neoverse N1 cores. You will meet the same instruction set on AWS Graviton, on Apple Silicon Macs, and on a Raspberry Pi 4 or 5. Software built for one generally runs on the others, which is a large part of why ARM support on Linux is now so complete.

Yes: it almost certainly just works

  • Web applications in interpreted languages. PHP, Python, Node.js and Ruby run your code through an interpreter that already has an ARM64 build. Your own source code does not change. WordPress, Laravel, Django, Rails and Express apps move across without edits.
  • Compiled languages with an ARM target. Go, Rust, Java, Kotlin and .NET on Linux all build for ARM64 as a supported, first-class target.
  • Web servers, proxies and caches. nginx, Apache, Caddy, HAProxy, Redis and Memcached are packaged for arm64 by every major distribution.
  • Databases. PostgreSQL, MariaDB, MySQL, MongoDB and SQLite all run on ARM64. Moving the data is a dump and restore; see moving databases to ARM.
  • Containers. The official images on Docker Hub are multi-architecture, so docker pull nginx on an ARM server fetches the ARM build without you asking.
  • Most self-hosted software. Nextcloud, Gitea, Grafana, Prometheus, Uptime Kuma and similar projects publish ARM builds as a matter of course.

Check: probably fine, but look first

  • Native extensions and packages. Interpreted code does not care about the CPU, but a compiled extension underneath it does. A Python wheel, a Node.js native addon or a PHP extension needs an ARM64 build. The popular ones have them; an obscure or abandoned one might not.
  • Your own Docker images. If you built them on an x86 laptop or CI runner, they are x86 images. Rebuilding them for both architectures is usually a one-line change; see moving Docker workloads to ARM.
  • Monitoring, security and backup agents. Most vendors now ship ARM64 agents, but check the specific one you are contractually tied to.
  • Hand-written assembly or SIMD code. Code written with x86 SSE or AVX intrinsics needs an ARM (NEON) path or a portable fallback.

No: pick something else

  • Software that only exists as an x86 binary. Some commercial tools, older closed-source agents and licence managers have never been built for ARM. Without the source, nobody can rebuild them.
  • Windows Server. We do not offer Windows.
  • Microsoft SQL Server. It has no ARM64 build for Linux. If your application needs it, it needs x86.
  • Many game servers. A lot of popular dedicated servers are x86 only. We list the ones that run natively on ARM and mark the rest as by request.

x86 emulation on Linux (QEMU user mode, for example) can run some of these, slowly. It is fine for a one-off tool and the wrong answer for a production service.

The five-minute check

The check on our ARM page is the quickest way to an answer:

  1. Containers: run docker manifest inspect <image> and look for "architecture": "arm64".
  2. Your own images: build for both with docker buildx build --platform linux/amd64,linux/arm64.
  3. Binaries: file ./yourapp says x86-64 or aarch64.
  4. Try it: if it runs on an Apple Silicon Mac or a Raspberry Pi 4 or 5 under Linux, it will run on an ARM64 server.

If everything you run is on the "yes" list, ARM is a good fit. If something is on the "check" list, porting it to ARM64 is usually smaller than people expect. If something is on the "no" list, that one service needs x86, and we would rather you heard that from us now.

Not sure which list you are on? Ask us before you order.

VPS GB runs only 64-bit ARM, hosted in the UK. Why we chose ARM, and what does and does not run on it.