Al een tijdje probeer ik Immich goed op te zetten op een Synology DS224+ NAS. Immich werkt, maar komt wel met een probleem: zo ongeveer elke 5s wordt er iets weggeschreven naar de HDD. De NAS staat in de woonkamer en is normaal gesproken niet hoorbaar, ook niet met streamen van media. Enkel deze repetitieve activiteit van Immich maakt een heel hard mechanisch geluid. Buiten dat het geluid hinderlijk is, lijkt het me niet goed voor de wear & tear van de HDD. De NAS wordt grote delen van de dag niet gebruikt en mijn voorkeur gaat uit naar een spindown van de HDD's. Dit wordt voorkomen door het gedrag van Immich.
Wat heb ik geprobeerd
Healthchecks van de verschillende containers uitgeschakeld. Geen verandering.
Logging uitgezet in de Immich settings.
Machine learning availability check uit.
Postgres autovacuum uit (via postgres config file).
Postgres stats allemaal uit (via postgres config file).
Immich geinstalleerd op een externe SSD. De postgres database draait nu extern en niet meer op de HDD. Alleen de foto library staat op het HDD volume.
Ondanks dit alles is er nog steeds elke paar seconden I/O op het HDD volume. Wat zou ik nog meer kunnen proberen? Dank voor alle hulp.
Docker YAML
ENV
Wat heb ik geprobeerd
Healthchecks van de verschillende containers uitgeschakeld. Geen verandering.
Logging uitgezet in de Immich settings.
Machine learning availability check uit.
Postgres autovacuum uit (via postgres config file).
Postgres stats allemaal uit (via postgres config file).
Immich geinstalleerd op een externe SSD. De postgres database draait nu extern en niet meer op de HDD. Alleen de foto library staat op het HDD volume.
Ondanks dit alles is er nog steeds elke paar seconden I/O op het HDD volume. Wat zou ik nog meer kunnen proberen? Dank voor alle hulp.
Docker YAML
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
| name: immich
services:
immich-server:
container_name: immich_server
image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
extends:
file: hwaccel.transcoding.yml
service: quicksync
volumes:
# Do not edit the next line. If you want to change the media storage location on your system, edit the value of UPLOAD_LOCATION in the .env file
- ${UPLOAD_LOCATION}:/data
- /etc/localtime:/etc/localtime:ro
env_file:
- .env
ports:
- '2283:2283'
depends_on:
- redis
- database
restart: always
healthcheck:
disable: true
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}
# 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
volumes:
- model-cache:/cache
env_file:
- .env
restart: always
healthcheck:
disable: true
redis:
container_name: immich_redis
image: docker.io/valkey/valkey:8@sha256:81db6d39e1bba3b3ff32bd3a1b19a6d69690f94a3954ec131277b9a26b95b3aa
healthcheck:
disable: true
# test: redis-cli ping || exit 1
restart: always
database:
container_name: immich_postgres
image: ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0@sha256:bcf63357191b76a916ae5eb93464d65c07511da41e3bf7a8416db519b40b1c23
environment:
POSTGRES_PASSWORD: ${DB_PASSWORD}
POSTGRES_USER: ${DB_USERNAME}
POSTGRES_DB: ${DB_DATABASE_NAME}
POSTGRES_INITDB_ARGS: '--data-checksums'
# Uncomment the DB_STORAGE_TYPE: 'HDD' var if your database isn't stored on SSDs
# DB_STORAGE_TYPE: 'HDD'
volumes:
# Do not edit the next line. If you want to change the database storage location on your system, edit the value of DB_DATA_LOCATION in the .env file
- ${DB_DATA_LOCATION}:/var/lib/postgresql/data
shm_size: 128mb
restart: always
volumes:
model-cache: |
ENV
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| # The location where your uploaded files are stored UPLOAD_LOCATION=/volume1/data/media/photos # The location where your database files are stored. Network shares are not supported for the database DB_DATA_LOCATION=./postgres # To set a timezone, uncomment the next line and change Etc/UTC to a TZ identifier from this list: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List # TZ=America/Lima # The Immich version to use. You can pin this to a specific version like "v1.71.0" IMMICH_VERSION=v2.3.1 # Connection secret for postgres. You should change it to a random password # Please use only the characters `A-Za-z0-9`, without special characters or spaces DB_PASSWORD=blablabla # The values below this line do not need to be changed ################################################################################### DB_USERNAME=postgres DB_DATABASE_NAME=immich |