Immich RAM Belegung

ctrlaltdelete

Benutzer
Contributor
Sehr erfahren
Maintainer
Mitglied seit
30. Dez 2012
Beiträge
15.218
Punkte für Reaktionen
6.893
Punkte
589
Wie ist eure RAM Belegung durch Immich?
Bei mir belegen die Immich Container insgesamt ca. 3 GB RAM
Wie kann ich das eingrenzen und wovon hängt das ab?
Installation via Portainer:
Code:
version: "3.9"
services:
  immich-redis:
    image: redis
    container_name: Immich-REDIS
    hostname: immich-redis
    security_opt:
      - no-new-privileges:true
    healthcheck:
      test: ["CMD-SHELL", "redis-cli ping || exit 1"]
    user: 1040:100
    environment:
      - TZ=Europe/Berlin
    volumes:
      - /volume2/docker/immich/redis:/data:rw
    restart: on-failure:5

  immich-db:
    image: tensorchord/pgvecto-rs:pg16-v0.2.0
    container_name: Immich-DB
    hostname: immich-db
    security_opt:
      - no-new-privileges:true
    healthcheck:
      test: ["CMD", "pg_isready", "-q", "-d", "immich", "-U", "immichuser"]
      interval: 10s
      timeout: 5s
      retries: 5
    volumes:
      - /volume2/docker/immich/db:/var/lib/postgresql/data:rw
    environment:
      - TZ=Europe/Berlin
      - POSTGRES_DB=immich
      - POSTGRES_USER=immichuser
      - POSTGRES_PASSWORD=immichpw
    restart: on-failure:5

  immich-server:
    image: ghcr.io/immich-app/immich-server:release
    container_name: Immich-SERVER
    hostname: immich-server
    user: 1040:100
    group_add:
      - 937
    security_opt:
      - no-new-privileges:true
    env_file:
      - stack.env
    ports:
      - 2283:2283
    devices:
      - /dev/dri:/dev/dri

    volumes:
      - /volume2/docker/immich/upload:/usr/src/app/upload:rw
      - /volume2/photo:/photo:rw

    restart: on-failure:5
    depends_on:
      immich-redis:
        condition: service_healthy
      immich-db:
        condition: service_started

  immich-machine-learning:
    image: ghcr.io/immich-app/immich-machine-learning:release
    container_name: Immich-LEARNING
    hostname: immich-machine-learning
    user: 1040:100
    security_opt:
      - no-new-privileges:true
    env_file:
      - stack.env
    volumes:
      - /volume2/docker/immich/upload:/usr/src/app/upload:rw
      - /volume2/docker/immich/cache:/cache:rw
    restart: on-failure:5
    depends_on:
      immich-db:
        condition: service_started
 

Anhänge

  • 1740135460127.png
    1740135460127.png
    73,8 KB · Aufrufe: 13
Zuletzt bearbeitet:
Ich nutze Dockge/Docker Compose und hab eine standard compose.yml von der Immich Seite mit zwei extra Containern:
YAML:
#
# WARNING: Make sure to use the docker-compose.yml of the current release:
#
# https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
#
# The compose file on main may not be compatible with the latest release.
#

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: cpu # set to one of [nvenc, quicksync, rkmpp, vaapi, vaapi-wsl] for accelerated transcoding
    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}:/usr/src/app/upload
      - /etc/localtime:/etc/localtime:ro
    env_file:
      - .env
    ports:
      - 2283:2283
    depends_on:
      - redis
      - database
    restart: always
    healthcheck:
      disable: false

  immich-machine-learning:
    container_name: immich_machine_learning
    # For hardware acceleration, add one of -[armnn, cuda, openvino] 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://immich.app/docs/features/ml-hardware-acceleration
    #   file: hwaccel.ml.yml
    #   service: cpu # set to one of [armnn, cuda, openvino, openvino-wsl] for accelerated inference - use the `-wsl` version for WSL2 where applicable
    volumes:
      - model-cache:/cache
    env_file:
      - .env
    restart: always
    healthcheck:
      disable: false

  redis:
    container_name: immich_redis
    image: docker.io/redis:6.2-alpine@sha256:e3b17ba9479deec4b7d1eeec1548a253acc5374d68d3b27937fcfe4df8d18c7e
    healthcheck:
      test: redis-cli ping || exit 1
    restart: always

  database:
    container_name: immich_postgres
    image: docker.io/tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:90724186f0a3517cf6914295b5ab410db9ce23190a2d9d0b9dd6463e3fa298f0
    environment:
      POSTGRES_PASSWORD: ${DB_PASSWORD}
      POSTGRES_USER: ${DB_USERNAME}
      POSTGRES_DB: ${DB_DATABASE_NAME}
      POSTGRES_INITDB_ARGS: '--data-checksums'
    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
    healthcheck:
      test: pg_isready --dbname='${DB_DATABASE_NAME}' --username='${DB_USERNAME}' || exit 1; Chksum="$$(psql --dbname='${DB_DATABASE_NAME}' --username='${DB_USERNAME}' --tuples-only --no-align --command='SELECT COALESCE(SUM(checksum_failures), 0) FROM pg_stat_database')"; echo "checksum failure count is $$Chksum"; [ "$$Chksum" = '0' ] || exit 1
      interval: 5m
      start_interval: 30s
      start_period: 5m
    command: ["postgres", "-c", "shared_preload_libraries=vectors.so", "-c", 'search_path="$$user", public, vectors', "-c", "logging_collector=on", "-c", "max_wal_size=2GB", "-c", "shared_buffers=512MB", "-c", "wal_compression=on"]
    restart: always

  backup:
    container_name: immich_db_dumper
    image: prodrigestivill/postgres-backup-local:14
    restart: always
    env_file:
      - .env
    environment:
      POSTGRES_HOST: database
      POSTGRES_CLUSTER: 'TRUE'
      POSTGRES_USER: ${DB_USERNAME}
      POSTGRES_PASSWORD: ${DB_PASSWORD}
      POSTGRES_DB: ${DB_DATABASE_NAME}
      SCHEDULE: "@daily"
      POSTGRES_EXTRA_OPTS: '--clean --if-exists'
      BACKUP_DIR: /db_dumps
    volumes:
      - ./db_dumps:/db_dumps
    depends_on:
      - database

  power-tools:
    container_name: immich_power_tools
    image: ghcr.io/varun-raj/immich-power-tools:latest
    ports:
      - "8001:3000"
    env_file:
      - .env

volumes:
  model-cache:

Und bei mir verbraucht Immich aktuell 900MB. Aber es läuft bei mir nicht auf der Synology. Ich hab eine eigene VM in Proxmox nur für Immich. Da läuft sonst nichts anderes drauf.
 
Ich habe auch Dozzle, allerdings habe ich Null Ahnung davon, wie man zu dieser Ansicht kommt, muss ich mal suchen :cool:
Und Danke für deine compose interessant mit DB Backup und powertools
 

Anhänge

  • 1740137126443.png
    1740137126443.png
    89 KB · Aufrufe: 11
Die Ansicht habe ich auf der Startseite. Er Zeigt mir da alle Hosts an. Und das ist so ein Eintrag für einen Host.
Für die Powertools musst du noch einen API Key in die config schreiben.
Code:
IMMICH_API_KEY= # your_immich_api_key
IMMICH_URL = "http://local-ip-of-immich:port" # Your immich instace ip address and port
EXTERNAL_IMMICH_URL = "https://external-address" # External address of immich

# Optional
GOOGLE_MAPS_API_KEY= # Google Maps API Key
GEMINI_API_KEY= # Gemini API Key
 
  • Like
Reaktionen: ctrlaltdelete
ah, ok und da du nur den einen Host hast:
 

Anhänge

  • 1740142068546.png
    1740142068546.png
    50 KB · Aufrufe: 10
Wenn ich in Portainer die RAM Werte für Memory und Cache für die vier Immich-Container addiere, komme ich in Summe auf ca. 1.520 MB. Hängt das vielleicht mit der Anzahl der in Immich verwalteten Bilder zusammen? Sind bei mir ca. 22.000.
 
Hmm nee nicht wirklich. Ich habe fast 26.000 Dateien drin und habe zwei Container (Backup und Powertools) laufen und bin bei knapp 900MB.
 
1740150667588.png
 
Die Videofunktion von Immich nutze ich nicht, das läuft bei mir über Jellyfin und die Videos liegen in einem separaten Ordner auf der DS. Wäre mal interessant die beiden Apps bzgl. Video-Funktionalität zu vergleichen.
 
Jellyfin und Immch haben doch komplett unterschiedliche Einsatzzwecke. Immich wird niemals mit den Funktionen von Jellyfin mithalten können. Wäre so als wenn du Immich und Lightroom vergleichen würdest.
 
Das mag bei Jellyfin durchaus so sein, aber ich nutze es nur, um selbstgefilmte Videos von der DSLR anzuschauen, die ich in FinalCut bearbeitet habe. Ich nutze es nicht, um kommerzielle Filme darüber zu schauen, die wohl manch einer auf seiner DS liegen hat. Dafür habe ich zwei HDD Recorder an den beiden TVs.
Worauf es mir vor allem ankommt ist die Streaming-Performance über da Netz. Und da sind meine Favoriten bis jetzt Jellyfin und Infuse. VLC ist bei mir nicht so performant.
Die Bilder, die in Immich eingebunden sind, kommen auch alle aus den DSLRs, da sind keine Handybilder oder ähnliches dabei. Diese Funktion von Immich nutze ich auch nicht. Ist etwas speziell bei mir ...
 
Ich bezweifle sehr stark, dass Immich da mithalten kann. Weil es ist nicht als Videoplayer konzipiert. Es kann Videos abspielen aber das war es auch schon :)
 
  • Like
Reaktionen: Phoenix1000
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat