I like to share my experience with Immich here.
Since my original post, I tried a lot of things:
I start to give some details of my HW first.
Model: Intel Alder Lake-N UHD Graphics
Type: Integrated graphics (built into your CPU)
Architecture: Modern Intel 12th/13th generation
PCI Address: 00:02.0
Hardware Acceleration: Excellent for video transcoding
AV1 hardware decoding
VP9
Not the most powerful.. but is a decent nas!
Since it is just a N100 CPU and my GPU is not a lot but is there, I managed to pass the instructions in the compose file to use the GPU
This is the section I added:
immich-machine-learning:
container_name: immich_machine_learning
# For hardware acceleration, add one of -[armnn, cuda, rocm, openvino, rknn] to the image tag.
# Example tag: ${IMMICH_VERSION:-release}-cuda
image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}-openvino
# extends: # uncomment this section for hardware acceleration - see https://docs.immich.app/features/ml-hardware-acceleration
# file: hwaccel.ml.yml
# service: cpu # set to one of [armnn, cuda, rocm, openvino, openvino-wsl, rknn] for accelerated inference - use the `-wsl` version for WSL2 where applicable
# Inline hardware acceleration (from hwaccel.ml.yaml → openvino) -START
device_cgroup_rules:
- 'c 189:* rmw'
devices:
- /dev/dri:/dev/dri
volumes: # this line is original and need to stay
- model-cache:/cache # this line is original and need to stay
- /dev/bus/usb:/dev/bus/usb
# END
Display More
The compose file is checked and fine. Run the compose file and seen little change (a little, yes).
But my CPU is constantly at 100% with the Python process skyrocketing to 200+%
So I figure i limit the CPU core utilization and added:
# Prevent CPU overload (optional but strongly recommended)
deploy:
resources:
limits:
cpus: '1.0'
Sure enough, I went to bed, and this morning I noticed my nas not responding again.
All I can say is that I figure out the issue but I cant find a solution.
This way my nas is not usable and unless I find a solution, Immich cant be used.
It seems Immich need a lot of GPU and/or vRAM and a solid CPU.
not really a common nas I guess.
If you have any suggestion, please let me know.
I am about to delete immish compose file! And for now I keep it down.
Troubleshooting:
journalctl -b -1 -e
Oct 17 20:12:55 ... loadavg (5min) of 11.6
Oct 17 20:13:25 ... loadavg (5min) of 10.8
Oct 17 20:13:55 ... loadavg (5min) of 10.1
...
On a 4-core N100, a load of 10–11 means the CPU is severely overloaded.
This explains why the system hangs. Tasks are queuing and the kernel struggles to schedule them
PID 3165, python, 280% CPU → on a 4-core CPU, that basically means 3 cores are fully saturated by this single Python process.
That’s huge and will cause loadavg spikes, system lag, and hangs.
The memory usage is moderate (563 MiB), so RAM isn’t the bottleneck, it’s CPU-bound.
the process that cause the most issue is:
ps -fp 3165
UID PID PPID C STIME TTY TIME CMD
root 3165 3128 99 22:17 ? 00:18:17 python -m gunicorn immich_ml.main:app -k immich_ml.config.CustomUvicornWorker -c /usr/src/immich_ml/gunicorn_conf.py -b [::]:3003 -w 1 -t 300 --log-config-json /us
Immich’s machine learning service (immich_ml) running under Gunicorn. The image/video analysis or thumbnail generation.
I wonder if I can safely desable Machine Learning and have Immich working correctly anyway... I am conerned about not creating image/video analysis or thumbnail generation.