Immich Config for Intel N100 with Hardware ML & Reverse Proxy (Ugreen DXP4800, 8GB RAM) #24990
Replies: 1 comment
-
|
it is better to let immich use the default cpu scheduler and hog temporary all your cpu core. Cpu pinning is most of the time a bad idea...Let immich complete what has to be done, your initial load and forget it. You should also really backed your claims with benchmarks, maybe the load is not any more of 16, but add another set of docker container and all these optimizations are done for nothing as core will be shared again. Pinning becomes disadvantageous or difficult to manage in other situations:
|
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Hi everyone,
I wanted to share my Docker Compose configuration for running Immich on an Intel N100 system (specifically a Ugreen DXP4800 running Debian 13 with 8GB RAM).
The Challenge
Initially, heavy tasks like bulk imports or machine learning jobs would completely overwhelm the N100 CPU. The load average would spike dangerously high (sometimes >16), causing the entire system and web interface to become unresponsive because Immich was hogging all 4 cores.
The Solution
I tuned the configuration to prioritize system stability while maintaining good performance. The key changes are:
cpuset: "1-3"to exclude Core 0 entirely. This ensures the OS, SSH, and Reverse Proxy always remain responsive.deploy.resources.limits. The Server is capped at 1.5 CPUs and ML at 1.0 CPU, leaving guaranteed headroom for the database and system processes.WORKERS=1and single-threaded operations (OMP_NUM_THREADS=1,MKL_NUM_THREADS=1). This prevents the ML process from aggressively stealing CPU time./data) sits on a BTRFS RAID1 HDD array.thumbs,encoded-video,profile) are mounted from an NVMe drive for a snappy browsing experience.ports: 2283:2283. This setup is designed to run behind a Reverse Proxy (like Nginx Proxy Manager). The container is only accessible via the internal Docker network (immich-internal/npm-network), meaning no unencrypted traffic is exposed directly on the host interface. SSL is handled by the proxy.Post-Install Settings
For this config to work effectively, you must adjust two settings in the Immich Web UI after starting the containers:
1. Enable Hardware Acceleration
Go to Administration -> Settings -> Transcoding.
Quick Sync.enabled.2. Lower Job Concurrency
Go to Administration -> Settings -> Job Settings.
The
docker-compose.ymlBeta Was this translation helpful? Give feedback.
All reactions