Photos & video

Immich server requirements: how much RAM with machine learning on vs off

By VPSfit · Sources checked · Immich website · source code · AGPL-3.0

Immich is a self-hosted Google Photos replacement. Its hunger for RAM comes almost entirely from one optional piece: the machine-learning container that powers smart search and face recognition. Decide whether you want that first, and the sizing question mostly answers itself.

Sizing guide

Our recommendations, derived from the sourced figures below. Not measurements.

ScenarioRAMvCPUWhy
Photo backup only (ML off)4 GB2The documented floor for running without machine learning. Community idle numbers for the non-ML containers sit well under 2 GB, which leaves room for upload bursts and thumbnail jobs.
Full features (ML on), small library6 GB minimum, 8 GB to be comfortable2–4The ML container is small when idle but grows while smart-search and face jobs run, which is exactly when uploads are also hammering the server. The 8 GB recommendation is the one to follow if this box runs anything else.
Initial import of a big library (ML on)8 GB, or cap the ML container4The first import runs every job over every photo at once. If you have to fit into less, cap the ML container's memory and lower job concurrency so it runs slower instead of pushing the box into swap.

Official requirements

ItemWhat the project saysSource
RAMMinimum 6 GB, recommended 8 GBImmich docs: Requirements
checked Oct 21, 2026
CPUMinimum 2 cores, recommended 4 cores (amd64 or arm64)Immich docs: Requirements
checked Oct 21, 2026
4 GB systems"For systems with only 4GB of RAM, Immich can be run with machine learning features disabled."Immich docs: Requirements
checked Oct 21, 2026
PostgresDatabase files are typically 1–3 GB; should be on local SSD, never a network share; needs at least 2 GB RAM if you set Docker resource limitsImmich docs: Requirements
checked Oct 21, 2026
Library overheadThumbnails and transcoded video add 10–20% to the library size on averageImmich docs: Requirements
checked Oct 21, 2026
CPU feature levelSince v3 the ML container on amd64 needs x86-64-v2 (most CPUs since ~2012); pick a supported CPU model if you run in a VMImmich docs: Requirements
checked Oct 21, 2026

What people report in practice

Individual reports, not controlled tests. Versions, hardware and settings differ, so treat these as data points, not guarantees.

Our measurements: coming soon

We haven't measured Immich yet, so there are no VPSfit lab numbers on this page. When we do, they'll show the app version, the plan it ran on, the date, and the raw data. Here's what we'll record:

  • Idle RAM per container after the stack settles, ML on and ML off
  • Peak RAM during a scripted import (fixed photo set), with default and reduced ML concurrency
  • Time to clear all job queues on 2, 4 and 8 GB plans
  • Image sizes and on-disk overhead per 1,000 photos

How we measure →

What drives Immich's RAM use

Machine learning is the swing factor

Smart search (CLIP) and face recognition each load a model into the immich-machine-learning container. Models load on first use and stay loaded until an idle timeout unloads them (MACHINE_LEARNING_MODEL_TTL, default 300 seconds per PR #2661), so RAM rises sharply during jobs and drops afterwards. That is why the same install can look tiny at idle and huge during an import.

Uploads and thumbnail generation

The server container does the thumbnailing, metadata extraction and video transcoding. Bulk uploads from the phone app push it hard. This is CPU-bound as much as RAM-bound, which is why the recommended core count doubles from 2 to 4.

Postgres

Immich keeps its metadata and search vectors in Postgres. It wants local SSD and, if you set container memory limits, at least 2 GB of RAM for itself.

Gotchas on a VPS

  • Turning ML off is two steps. Disabling machine learning in Administration > Settings stops the jobs, but the container keeps running. To actually free the RAM, also remove the immich-machine-learning service from your compose file. (Immich FAQ, checked 2026-10-21.)
  • Don't put the database on network storage. Cheap VPS plans with small disks tempt people to mount block storage or a storage box over the network for everything. Photos can live there; Postgres (DB_DATA_LOCATION) should stay on the local SSD.
  • Disk fills faster than you expect. Budget the library plus 10–20% for generated thumbnails and transcodes, plus the 1–3 GB database. On a VPS, disk is usually the first thing you run out of, not RAM.
  • Old CPUs and odd VM CPU models. Since v3 the ML container on amd64 needs the x86-64-v2 instruction level. Almost every current VPS has it, but some virtualization setups expose a generic CPU model that doesn't.
  • Idle RAM that never seems to drop. Allocated memory often stays with the process until something else needs it. An Immich maintainer described this as normal in this thread. Judge by whether the box swaps or the kernel kills containers, not by the idle number alone.

Cheapest plans that fit

Immich (machine learning on): 6 GB RAM or more

Threshold: Official minimum (6 GB, 2 cores) (source). Also check vCPU: at least 2.

Provider & planRAMvCPUDisk Price / monthTermsSource
Contabo Cloud VPS 4 8 GB 4 shared 100 GB SSD €4.40
excl. VAT · ≈ $4.93
24-month term (effective monthly rate) contabo.com
checked Oct 21, 2026
Contabo Cloud VPS 6 12 GB 6 shared 200 GB SSD (or 100 GB NVMe) €6.00
excl. VAT · ≈ $6.73
24-month term (effective monthly rate) contabo.com
checked Oct 21, 2026
Contabo Cloud VPS 8 24 GB 8 shared 300 GB SSD (or 150 GB NVMe) €11.20
excl. VAT · ≈ $12.56
24-month term (effective monthly rate) contabo.com
checked Oct 21, 2026
Hostinger KVM 2 8 GB 2 AMD EPYC 100 GB NVMe $14.99
intro $8.79
before tax
Prepaid intro rate; renews at $14.99/mo hostinger.com
checked Oct 21, 2026

Immich (machine learning off): 4 GB RAM or more

Threshold: Official: runs on 4 GB with ML disabled (source). Also check vCPU: at least 2.

Provider & planRAMvCPUDisk Price / monthTermsSource
Contabo Cloud VPS 4 8 GB 4 shared 100 GB SSD €4.40
excl. VAT · ≈ $4.93
24-month term (effective monthly rate) contabo.com
checked Oct 21, 2026
Contabo Cloud VPS 6 12 GB 6 shared 200 GB SSD (or 100 GB NVMe) €6.00
excl. VAT · ≈ $6.73
24-month term (effective monthly rate) contabo.com
checked Oct 21, 2026
Hostinger KVM 1 4 GB 1 AMD EPYC 50 GB NVMe $11.99
intro $6.49
before tax
Prepaid intro rate; renews at $11.99/mo hostinger.com
checked Oct 21, 2026
Contabo Cloud VPS 8 24 GB 8 shared 300 GB SSD (or 150 GB NVMe) €11.20
excl. VAT · ≈ $12.56
24-month term (effective monthly rate) contabo.com
checked Oct 21, 2026

Prices checked Oct 21, 2026 on each provider's official pricing page. EUR prices converted at the ECB rate of Oct 20, 2026 (1 € = $1.1215) only for ranking. See all plans on the cheapest 4 GB VPS page.