6 - Performances et accélération matérielle Exploiter le GPU, régler les tâches et surveiller les performances d'Immich. 6.1 - Transcodage NVIDIA avec une Quadro P2000 La NVIDIA Quadro P2000 peut accélérer le transcodage vidéo avec NVENC et réduire la charge CPU. Immich indique que le transcodage matériel peut produire des fichiers plus volumineux et parfois de qualité inférieure à réglage comparable. Vérifier le GPU sur TrueNAS sudo lspci -nnk | grep -A3 -i nvidia nvidia-smi Ton environnement a déjà utilisé un pilote NVIDIA 570.172.08 avec la P2000 reconnue. Après chaque mise à jour TrueNAS, refaire le contrôle. Vérifier dans le conteneur Découvrir le conteneur : sudo docker ps --format '{{.Names}} {{.Image}}' | grep -i immich Puis : sudo docker exec NOM_CONTENEUR_IMMICH nvidia-smi L'image serveur observée utilisait NVIDIA_DRIVER_CAPABILITIES=all. Vérifier cette variable et l'allocation GPU dans l'interface TrueNAS plutôt que de modifier les fichiers Compose générés. Activer dans TrueNAS éditer l'application Immich ; activer la configuration GPU ; sélectionner la P2000 pour le serveur Immich ; redéployer ; ouvrir les paramètres de transcodage vidéo ; choisir NVENC ; commencer avec le décodage matériel désactivé ; tester un fichier compatible puis activer le décodage si utile. Contrôler l'utilisation watch -n 1 nvidia-smi Dans une autre session, lancer une tâche de transcodage et suivre les journaux : sudo docker logs -f NOM_CONTENEUR_IMMICH Limites de la P2000 génération Pascal ancienne mais encore adaptée à H.264 et HEVC ; pas d'encodage AV1 ; qualité et formats limités par le matériel ; 5 Go de VRAM à partager si le machine learning utilise aussi le GPU ; nombre de sessions et performances variables selon les fichiers. En cas d'artefacts tester le même fichier en transcodage logiciel ; désactiver le décodage matériel ; comparer H.264 et HEVC ; vérifier les journaux FFmpeg ; contrôler pilote et température ; ne pas conclure à une panne GPU à partir d'un seul fichier corrompu. Référence : https://docs.immich.app/features/hardware-transcoding/ 6.2 - Machine learning avec CUDA Le machine learning Immich fournit la recherche intelligente et la reconnaissance faciale. CUDA est pris en charge sur les GPU NVIDIA avec une capacité de calcul 5.2 ou supérieure. Conditions actuelles GPU NVIDIA compatible ; pilote officiel NVIDIA 545 ou plus récent ; accès au GPU depuis le conteneur ; image machine learning CUDA ; mémoire GPU suffisante pour le modèle. La Quadro P2000 répond à la condition de capacité de calcul et ton pilote 570.172.08 dépasse le minimum documenté. Docker Compose Le service doit utiliser une image se terminant par -cuda et réserver un GPU. Exemple conceptuel : immich-machine-learning: image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}-cuda deploy: resources: reservations: devices: - driver: nvidia count: 1 capabilities: - gpu Utiliser de préférence les fichiers officiels hwaccel.ml.yml correspondant à la version Immich. TrueNAS Dans les paramètres de l'application : activer le GPU pour le machine learning ; sélectionner la P2000 ; redéployer ; vérifier le conteneur ; lancer une tâche de visages ou recherche intelligente. Vérifier sudo docker exec NOM_CONTENEUR_ML nvidia-smi sudo docker logs --tail 200 NOM_CONTENEUR_ML Chercher : CUDAExecutionProvider Available ORT providers Surveiller : watch -n 1 nvidia-smi Gestion de la VRAM La P2000 possède 5 Go de VRAM. Éviter de lancer simultanément un import massif, plusieurs transcodages et de nombreux traitements ML sans surveillance. Réduire si nécessaire : le nombre de workers ; la concurrence des tâches ; la taille ou complexité du modèle ; les transcodages parallèles. Après activation Il n'est pas nécessaire de relancer tous les anciens jobs uniquement pour profiter de l'accélération. Les prochaines tâches utiliseront le backend disponible. Référence : https://docs.immich.app/features/ml-hardware-acceleration/ 6.3 - Concurrence, tâches et choix du stockage Priorités de stockage PostgreSQL sur SSD si possible. Miniatures sur SSD si la navigation est lente. Originaux sur le pool de capacité. Sauvegardes sur un autre support et un autre système. Séparer les datasets peut améliorer l'organisation, mais complexifie la restauration. Mesurer avant de multiplier les montages. Concurrence des tâches Dans Administration > Settings, ajuster progressivement : extraction de métadonnées ; miniatures ; transcodage ; recherche intelligente ; détection faciale. Ne pas dépasser sans raison le nombre de coeurs disponibles, surtout pour les miniatures. Une concurrence trop forte peut ralentir l'API et saturer le stockage. Import massif Avant : df -hT free -h nvidia-smi Pendant : docker stats iostat -xz 2 watch -n 2 nvidia-smi iostat est fourni par sysstat sur de nombreuses distributions. Machine learning distant Immich peut envoyer les aperçus à un service machine learning plus puissant. Cette option convient à un serveur limité, mais ajoute une dépendance réseau et un second service à sauvegarder ou reconstruire. Base PostgreSQL Éviter les modifications manuelles de paramètres PostgreSQL copiées depuis un autre environnement. L'image officielle Immich contient des réglages et extensions adaptés. Contrôles utiles : docker exec -it immich_postgres psql -U postgres -d immich -c 'select version();' docker exec -it immich_postgres pg_isready -U postgres -d immich Adapter utilisateur, base et conteneur. Nettoyage Après une mise à jour Docker validée : docker image prune Cette commande supprime les images inutilisées, pas les images en cours d'utilisation. Ne pas supprimer les volumes ou dossiers de données pour gagner de la place. Mesurer Comparer avant et après : temps d'ouverture des miniatures ; durée d'une tâche de 1000 actifs ; charge CPU ; mémoire disponible ; latence disque ; utilisation GPU ; réactivité de l'API. Références : https://docs.immich.app/administration/jobs-workers/ https://docs.immich.app/install/truenas/ 6.4 - Surveillance, journaux et contrôles État des conteneurs Docker Compose : docker compose ps docker compose logs --tail=100 docker stats --no-stream TrueNAS : sudo docker ps --format 'table {{.Names}}\t{{.Status}}' sudo docker stats --no-stream Version et schéma docker exec -it immich_server immich-admin version docker exec -it immich_server immich-admin schema-check Adapter le nom du conteneur. Santé de PostgreSQL docker exec immich_postgres pg_isready -U postgres -d immich docker logs --tail 100 immich_postgres Ressources hôte uptime free -h df -hT df -i lsblk -f TrueNAS : sudo zpool status sudo zpool list sudo zfs list GPU : nvidia-smi Interface Immich Administration > Server Stats pour les actifs et quotas ; Administration > Jobs pour les files ; Administration > Maintenance pour l'intégrité ; Administration > Settings > Backup pour les dumps ; Administration > External Libraries pour les scans. Collecte de diagnostic Le pack contient scripts/diagnostic_immich.sh. Exemple : IMMICH_COMPOSE_DIR=/srv/immich/app \ ./scripts/diagnostic_immich.sh Le script n'effectue aucune modification. Examiner le rapport avant de le partager, car il peut contenir noms de conteneurs, chemins, versions et adresses. Alertes utiles espace libre faible ; pool ZFS dégradé ; conteneur en redémarrage ; sauvegarde PostgreSQL absente ou ancienne ; files d'attente bloquées ; erreurs d'intégrité ; certificat proche de l'expiration ; GPU absent après mise à jour. Ne pas attendre un incident pour tester les commandes de diagnostic et la restauration.