Immich Resoruces and Monitoring
Immich: Resource Usage & Monitoring for 4 Users is an article which examines how Immich performs with four users. In the article, I am focused on resource consumption and effective monitoring techniques to optimize performance.
Immich is an open-source, self-hosted photo and video management solution designed to provide a private, efficient alternative to cloud-based services like Google Photos. With features such as automatic uploads, AI-powered image recognition, and a fast search experience, Immich is perfect for individuals, families, or small groups managing their media collections.
When multiple users access Immich, resource consumption increases due to simultaneous uploads, indexing, and processing. Monitoring system performance is crucial to ensure smooth operation, avoid bottlenecks, and optimize resource allocation. By tracking key metrics like CPU usage, memory consumption, disk space, and network bandwidth, administrators can spot potential performance issues early and adjust resources to maintain a seamless user experience.
This article explores how Immich performs with four users, detailing its resource usage and providing insights into the best tools and techniques for monitoring and optimizing performance.
My Immich Setup
For my Immich deployment, I have chosen Ubuntu with the Snap package. This installation method offers an easy and automated way to manage Immich, without the need for Docker or manual dependency handling. While Snap provides automatic updates and security isolation, it also has some impact on system resource usage compared to other installation methods.
Since I am using Snap, I do not need to manually manage dependencies, making installation and maintenance simpler.
Here’s an overview of my setup:
- CPU: Intel(R) Core(TM) i5-4570 CPU @ 3.20GHz (Minimum 2 cores, recommended 4 cores)
- RAM Memory: 6 GB (Minimum 4GB, recommended 6GB)
- Storage: Local 350 GB SSD (ext4) for media files
- Operating System: Ubuntu 22.04 LTS
- Installation Method: Snap package
- Database: PostgreSQL (managed by Snap or system-installed)
- Number of Users: 4
- AI Features Enabled: Face/object recognition, duplicate detection
You can check hardware requirements at the following link.
Monitoring
Monitoring is vital for keeping my server stable and performing well, especially since it runs 24/7. It helps me catch issues like high CPU usage, memory spikes, or low disk space before they impact the server. By tracking key metrics with tools like The Dude, I can ensure the server stays reliable and avoids downtime. Proactive monitoring reduces the risk of failures and ensures smooth, uninterrupted service.
CPU Usage
For monitoring CPU usage on my Immich server, I rely on The Dude Monitoring tool. It provides real-time insights into the server’s CPU performance, showing the load and utilization across all cores. The Dude’s intuitive interface allows me to quickly identify any spikes or abnormal activity that might indicate performance issues or potential bottlenecks.


Information about CPU running my Immich application:
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Address sizes: 43 bits physical, 48 bits virtual
Byte Order: Little Endian
CPU(s): 4
On-line CPU(s) list: 0-3
Vendor ID: GenuineIntel
Model name: Intel(R) Core(TM) i5-4570 CPU @ 3.20GHz
Caches (sum of all):
L1d: 128 KiB (4 instances)
L1i: 128 KiB (4 instances)
L2: 1 MiB (4 instances)
L3: 24 MiB (4 instances)
RAM Usage
I monitor the RAM usage on my Immich server using The Dude Monitoring tool, which helps me keep track of memory performance in real-time. The Dude provides an intuitive dashboard that shows how much memory is being used, and it alerts me to any potential issues. By regularly checking RAM usage, I can ensure that the server doesn’t run out of memory, which could lead to performance degradation or even system crashes. This proactive monitoring gives me peace of mind knowing that my server is running correctly.


Network Bandwidth Usage
Since Immich syncs media across devices, I also track network bandwidth usage. I use The Dude Monitoring System to get a visual representation of network traffic, latency, and device status.
Additionally, I use vnstat, a lightweight tool installed on my Ubuntu server, to monitor daily and monthly bandwidth usage:
Monthly traffic:
vnstat --months 24
ens160 / monthly
month rx | tx | total | avg. rate
------------------------+-------------+-------------+---------------
2024-04 7.52 GiB | 1.40 GiB | 8.92 GiB | 29.56 kbit/s
2024-05 10.91 GiB | 1.62 GiB | 12.54 GiB | 40.20 kbit/s
2024-06 13.52 GiB | 3.87 GiB | 17.39 GiB | 57.62 kbit/s
2024-07 21.58 GiB | 2.13 GiB | 23.71 GiB | 76.04 kbit/s
2024-08 14.67 GiB | 20.24 GiB | 34.91 GiB | 111.97 kbit/s
2024-09 18.68 GiB | 10.44 GiB | 29.12 GiB | 96.50 kbit/s
2024-10 31.55 GiB | 8.46 GiB | 40.01 GiB | 128.33 kbit/s
2024-11 13.73 GiB | 10.39 GiB | 24.11 GiB | 79.90 kbit/s
2024-12 11.72 GiB | 3.62 GiB | 15.35 GiB | 49.22 kbit/s
Daily traffic:
vnstat --day 14
ens160 / daily
day rx | tx | total | avg. rate
------------------------+-------------+-------------+---------------
2025-01-18 1.54 GiB | 81.03 MiB | 1.62 GiB | 161.15 kbit/s
2025-01-19 299.47 MiB | 54.04 MiB | 353.50 MiB | 34.32 kbit/s
2025-01-20 221.80 MiB | 161.39 MiB | 383.19 MiB | 37.20 kbit/s
2025-01-21 205.67 MiB | 842.38 MiB | 1.02 GiB | 101.76 kbit/s
2025-01-22 701.19 MiB | 46.64 MiB | 747.84 MiB | 72.61 kbit/s
2025-01-23 217.11 MiB | 656.38 MiB | 873.49 MiB | 84.81 kbit/s
2025-01-24 177.57 MiB | 31.37 MiB | 208.94 MiB | 20.29 kbit/s
2025-01-25 430.19 MiB | 36.04 MiB | 466.23 MiB | 45.27 kbit/s
2025-01-26 1.82 GiB | 48.71 MiB | 1.87 GiB | 186.17 kbit/s
2025-01-27 936.53 MiB | 39.04 MiB | 975.58 MiB | 94.72 kbit/s
2025-01-28 397.13 MiB | 36.87 MiB | 434.00 MiB | 42.14 kbit/s
2025-01-29 324.73 MiB | 159.64 MiB | 484.37 MiB | 47.03 kbit/s
Disk Usage
To ensure the smooth operation of Immich server, it’s essential to monitor disk usage regularly. A combination of The Dude Monitoring tool and the df -h
command is highly effective for this purpose.
The Dude provides a visual representation of server’s disk performance, allowing to track storage health and usage over time. This tool helps me to spot potential issues early, ensuring my system operating efficiently.
On the command line, running df -h
gives a quick snapshot of disk space, presenting the data in a human-readable format. This command is particularly useful for checking available disk space, ensuring that the server doesn’t run out of storage and cause performance bottlenecks:
root@immich:/home# df -h
Filesystem Size Used Avail Use% Mounted on
tmpfs 589M 1.9M 587M 1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv 323G 262G 47G 85% /
tmpfs 2.9G 0 2.9G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
/dev/sda2 2.0G 242M 1.6G 14% /boot
tmpfs 589M 4.0K 589M 1% /run/user/1000
Conclusion
Running Immich on Ubuntu with Snap has been a great experience for my four-user setup. While Snap introduces slight resource overhead, it simplifies installation, updates, and security management. By monitoring CPU, RAM, disk, and network usage, I can ensure that Immich runs smoothly without unexpected slowdowns.
Based on the current usage of 262 GB by 4 users, with data starting from June 2021, we can estimate the average data storage per user as follows:
- Daily Data Usage: Each user is storing approximately 0.051 GB (51 MB) of data per day.
- Monthly Data Usage: On average, each user is contributing about 1.52 GB of data per month.
- Yearly Data Usage: Over the course of a year, each user is storing around 18.71 GB of data.
These figures provide a useful benchmark for understanding the storage needs per user and can help in planning future data storage requirements as usage continues to grow.