Bug#898575: In-memory cache grows almost without bound

classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

Bug#898575: In-memory cache grows almost without bound

Juliusz Chroboczek-4
Package: mpv
Version: 0.28.2-1

When streaming over HTTP from localhost, the in-memory cache grows
seemingly without bound (RSS just got up to 700MB).  Running
with --cache=no does *not* work around the issue.

Downgrading to 0.27.2-1 fixes the issue.

Reply | Threaded
Open this post in threaded view
|

Bug#898575: In-memory cache grows almost without bound

James Cowgill
Control: retitle -1 mpv: in-memory cache grows very large
Control: tags -1 fixed-upstream

Hi,

On 13/05/18 20:37, Juliusz Chroboczek wrote:
> Package: mpv
> Version: 0.28.2-1
>
> When streaming over HTTP from localhost, the in-memory cache grows
> seemingly without bound (RSS just got up to 700MB).  Running
> with --cache=no does *not* work around the issue.
>
> Downgrading to 0.27.2-1 fixes the issue.

My understanding is that this was an intentional change. See these
upstream issues about other people complaining about the same thing!
https://github.com/mpv-player/mpv/issues/5359
https://github.com/mpv-player/mpv/issues/5652
https://github.com/mpv-player/mpv/issues/5799

However, in this commit the maximum cache size was reduced to 150MB, so
hopefully 0.29 will improve this:

https://github.com/mpv-player/mpv/commit/e167812406f97443d6422f4dd088a59db842f43a

Thanks,
James


signature.asc (849 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Bug#898575: In-memory cache grows almost without bound

James Cowgill
In reply to this post by Juliusz Chroboczek-4
Hi,

On 26/07/18 08:12, Juliusz Chroboczek wrote:
>> My understanding is that this was an intentional change.
>
> Please read the bug report again.  Using --cache=no does *not* limit the
> cache.

That's correct. The --cache option only affects the stream cache (which
is correctly disabled by that option). The issue here was the size of
the demuxer cache (which caches already demuxed packets). This cache is
not affected by the --cache option. Upstream enabled this cache and set
it to a very large size. This was reduced in 0.29 thus mitigating the issue.

James


signature.asc (849 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Bug#898575: In-memory cache grows almost without bound

Juliusz Chroboczek-4
> That's correct. The --cache option only affects the stream cache (which
> is correctly disabled by that option). The issue here was the size of
> the demuxer cache (which caches already demuxed packets).

This is completely unintuitive, and undocumented.  From the manual page:

       --cache=<kBytes|yes|no|auto>
              Set the size of the cache in kilobytes, disable it with  no,  or
              automatically  enable  it  if  needed with auto (default: auto).

The manual page needs fixing, at the very least.

Reply | Threaded
Open this post in threaded view
|

Bug#898575: In-memory cache grows almost without bound

James Cowgill
Hi,

On 27/07/18 00:57, Juliusz Chroboczek wrote:

>> That's correct. The --cache option only affects the stream cache (which
>> is correctly disabled by that option). The issue here was the size of
>> the demuxer cache (which caches already demuxed packets).
>
> This is completely unintuitive, and undocumented.  From the manual page:
>
>        --cache=<kBytes|yes|no|auto>
>               Set the size of the cache in kilobytes, disable it with  no,  or
>               automatically  enable  it  if  needed with auto (default: auto).
>
> The manual page needs fixing, at the very least.
I think I agree that the manpage needs some clarification to note that
the --cache option only affects the stream cache.

In the meantime I uploaded mpv 0.29 which has adjusted the cache sizes a
bit (although the behavior of --cache has not changed). Can you see if
it has improved the situation?

James


signature.asc (849 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Bug#898575: In-memory cache grows almost without bound

Juliusz Chroboczek-4
> I think I agree that the manpage needs some clarification to note that
> the --cache option only affects the stream cache.

> In the meantime I uploaded mpv 0.29 which has adjusted the cache sizes a
> bit (although the behavior of --cache has not changed). Can you see if
> it has improved the situation?

My situation is somewhat unusal -- I'm streaming from a local server that
acts as a proxy, so I want to minimise prefetching (to avoid using up
server resources).  I doubt that the default configuration will suit me,
but that's okay.

What's not okay is that with older versions, I could simply tell my users
to run mpv with "--cache no".  With the new version, I'm going to have to
ship a script.

-- Juliusz

Reply | Threaded
Open this post in threaded view
|

Bug#898575: In-memory cache grows almost without bound

James Cowgill
Hi,

On 30/07/18 19:11, Juliusz Chroboczek wrote:

>> I think I agree that the manpage needs some clarification to note that
>> the --cache option only affects the stream cache.
>
>> In the meantime I uploaded mpv 0.29 which has adjusted the cache sizes a
>> bit (although the behavior of --cache has not changed). Can you see if
>> it has improved the situation?
>
> My situation is somewhat unusal -- I'm streaming from a local server that
> acts as a proxy, so I want to minimise prefetching (to avoid using up
> server resources).  I doubt that the default configuration will suit me,
> but that's okay.
>
> What's not okay is that with older versions, I could simply tell my users
> to run mpv with "--cache no".  With the new version, I'm going to have to
> ship a script.
I think (through some experimentation) that "--cache=no --cache-secs=10"
will work on 0.29 and 0.27 giving the same behavior as "--cache=no" did
on 0.27.

James


signature.asc (849 bytes) Download Attachment