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_=100000can 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_

  • atzanteol
    link
    fedilink
    English
    arrow-up
    75
    ·
    edit-2
    2 days ago

    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.

      • ferret
        link
        fedilink
        English
        arrow-up
        10
        ·
        1 day ago

        The linked source also doesn’t explain what the env variable actually does or why it fixes anything.

  • litchralee
    link
    fedilink
    English
    arrow-up
    67
    arrow-down
    1
    ·
    2 days ago

    PS: Reddit doesn’t allow edit post titles, needed to repost

    But this is Lemmy.

    • American_Jesus@lemm.eeOP
      link
      fedilink
      English
      arrow-up
      25
      arrow-down
      2
      ·
      2 days ago

      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 the mmap 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.
      • Purpose:
        • Helps manage large memory allocations more efficiently.
        • Can be adjusted to optimize performance for specific applications.
  • TheButtonJustSpins@infosec.pub
    link
    fedilink
    English
    arrow-up
    1
    ·
    2 days ago

    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.

  • apprehensively_human@lemmy.ca
    link
    fedilink
    English
    arrow-up
    1
    ·
    2 days ago

    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.

  • boreengreen@lemm.ee
    link
    fedilink
    English
    arrow-up
    1
    arrow-down
    1
    ·
    edit-2
    2 days ago

    How well does jellyfin work on a rpi? How many simultaneous 1080p users with AVC\ACC media can it do? Active cooling?