docker-compose based memory and cpu limits?
As per https://stackoverflow.com/a/73000142 there are ways in the current docker-compose versions to have memory and CPU limits. Apparently those can be used with older versions of docker-compose if the
--compatibility
flag is used as per https://stackoverflow.com/questions/42345235/how-to-specify-memory-cpu-limit-in-docker-compose-version-3#comment112608532_53057683 .
Has anybody used those?
I'm getting OOM issues on my server, so I thought I would try setting some of those flags. So I am trying adding this to the immich-server
and immich-machine-learning
portions of the docker-compose.yml
file:
This is the systemd service file I am using:
I guess my ultimate question is this: Is there a supported way to add the cpu and memory limits that we could add to the default docker-compose.yml file so that I don't have to maintain a modified version?Stack Overflow
How to specify Memory & CPU limit in docker compose version 3
I am unable to specify CPU and memory limitation for services specified in version 3.
With version 2 it works fine with mem_limit & cpu_shares parameters under the services. But it fails while ...
Stack Overflow
How to specify Memory & CPU limit in docker compose version 3
I am unable to specify CPU and memory limitation for services specified in version 3.
With version 2 it works fine with mem_limit & cpu_shares parameters under the services. But it fails while ...
7 Replies
:wave: Hey @satmandu,
Thanks for reaching out to us. Please carefully read this message and follow the recommended actions. This will help us be more effective in our support effort and leave more time for building Immich :immich:.
References
- Container Logs:
docker compose logs
docs
- Container Status: docker ps -a
docs
- Reverse Proxy: https://immich.app/docs/administration/reverse-proxy
- Code Formatting https://support.discord.com/hc/en-us/articles/210298617-Markdown-Text-101-Chat-Formatting-Bold-Italic-Underline#h_01GY0DAKGXDEHE263BCAYEGFJA
Checklist
I have...
1. :ballot_box_with_check: verified I'm on the latest release(note that mobile app releases may take some time).
2. :ballot_box_with_check: read applicable release notes.
3. :ballot_box_with_check: reviewed the FAQs for known issues.
4. :ballot_box_with_check: reviewed Github for known issues.
5. :ballot_box_with_check: tried accessing Immich via local ip (without a custom reverse proxy).
6. :blue_square: uploaded the relevant information (see below).
7. :blue_square: tried an incognito window, disabled extensions, cleared mobile app cache, logged out and back in, different browsers, etc. as applicable
(an item can be marked as "complete" by reacting with the appropriate number)
Information
In order to be able to effectively help you, we need you to provide clear information to show what the problem is. The exact details needed vary per case, but here is a list of things to consider:
- Your docker-compose.yml and .env files.
- Logs from all the containers and their status (see above).
- All the troubleshooting steps you've tried so far.
- Any recent changes you've made to Immich or your system.
- Details about your system (both software/OS and hardware).
- Details about your storage (filesystems, type of disks, output of commands like fdisk -l
and df -h
).
- The version of the Immich server, mobile app, and other relevant pieces.
- Any other information that you think might be relevant.
Please paste files and logs with proper code formatting, and especially avoid blurry screenshots.
Without the right information we can't work out what the problem is. Help us help you ;)
If this ticket can be closed you can use the /close
command, and re-open it later if needed.that we could add to the default docker-compose.ymlNo, everyone's setup is different enough that setting default limits wouldn't make sense Keeping a modified compose is a pretty standard thing to do
We already cover this
Sorry. Thanks! Is there a recommended size for a memory limit? I can throw ram at this, but just wanted to know if there is a heuristic for reasonable? e.g., if I have a 2Tb library.
If you’re not tight on RAM, I would not go below 4 GB each for server and ML, 2GB for Postgres. Redis 1GB is probably fine
Remember if they exceed this they’ll be killed. They might be better higher
Thanks! That's really helpful.