Many users reported high memory/RAM usage, some 8GB+.
In my case gone from 1.5GB+ to 400MB or less on Raspberry Pi 4.
Adding MALLOC_TRIM_THRESHOLD_=100000
can make a big difference.
With Docker:
Add to your docker-compose.yml and docker compose down && docker compose up -d
...
environment:
- MALLOC_TRIM_THRESHOLD_=100000
...
With systemd:
Edit /etc/default/jellyfin
change the value of MALLOC_TRIM_THRESHOLD_
and restart the service
# Disable glibc dynamic heap adjustment
MALLOC_TRIM_THRESHOLD_=100000
Source: https://github.com/jellyfin/jellyfin/issues/6306#issuecomment-1774093928
Official docker,Debian,Fedora packages already contain MALLOC_TRIM_THRESHOLD_
.
Not present on some docker images like linuxserver/jellyfin
Check is container (already) have the variable
docker exec -it jellyfin printenv | grep MALLOC_TRIM_THRESHO LD_
It’s bad form to just say “set this variable to this value” without any explanation about what that variable does and why that value helped.
Your configuration may not work or may be detrimental for others.
If you click the source linked, you can read through all the details.
The linked source also doesn’t explain what the env variable actually does or why it fixes anything.
PS: Reddit doesn’t allow edit post titles, needed to repost
But this is Lemmy.
OP didn’t update their repost bot to understand what it’s reposting.
deleted by creator
What does it do?
The value of this tunable is the minimum size (in bytes) of the top-most, releasable chunk in an arena that will trigger a system call in order to return memory to the system from that arena.
https://www.gnu.org/software/libc/manual/html_node/Memory-Allocation-Tunables.html
MALLOC_MMAP_THRESHOLD_
is an environment variable that sets the size threshold for using themmap
system call to allocate memory instead of using the heap.- Default: 128 KiB
- Behavior:
- If a memory request is ≥ 128 KiB,
mmap
is used. - If < 128 KiB, the heap is used.
- If a memory request is ≥ 128 KiB,
- Purpose:
- Helps manage large memory allocations more efficiently.
- Can be adjusted to optimize performance for specific applications.
What’s the default value?
It could depend on your distro, official packaging (docker,Debian,Fedora) have
MALLOC_TRIM_THRESHOLD_=131072
, but different distros could have (or not) ship with different settings.Official settings for systemd https://github.com/jellyfin/jellyfin-packaging/blob/master/debian/conf/jellyfin
Thank you for posting this! I’ve been increasing the memory for my VM over and over and it was using 24GB RAM + 4GB swap. Hopefully this will let me reclaim some.
I’ve been having memory leak issues with my Jellyfin container, so I fired it up to see if it has a MALLOC variable set and it immediately crashed my server. Now waiting for the OOM killer to do its thing.
How well does jellyfin work on a rpi? How many simultaneous 1080p users with AVC\ACC media can it do? Active cooling?
Didn’t try but depends on which RPI. 4? 5?
Also depends on the storage medium (SD? SSD?), assuming there’s no transcoding.