I am investigating bandwidth usage for a live stream backed by a CDN, and it seems Roku devices are responsible for over 60% of all usage, despite only being used by 10% of users. This looks like some massive bug, and causing us to consider banning Roku devices entirely.
Would it be possible for some advice to be provided on this?
We are seeing Roku devices request the same MPEG segment up to 10 times, and rarely just once. In the usual case, each MPEG segment is requested 5 times. It looks like there might be some crazy aggressive retry/timeout mechanism that is malfunctioning.
Aside from costing us money, this is likely to be impacting all users.
Are there any M3U8 tags we can use to control retries? Can Roku please comment on what can be causing this?
Example impacted stream URL: https://live.livetvstream.co.uk/LS-63503-4/index.m3u8
Thank you for reporting this issue and providing a test stream. We're trying to reproduce this issue and would like to know the firmware version of the devices that create this extreme network load. Would you be able to provide the user agent of an HTTP GET request that's issued multiple times.
Thanks for taking a look at this. Below is output of a simple stats script, fed a CDN log file. I have removed non-Roku agents; each section usually contains top 20 entries.
(Google Cloud Storage URLs because I can't attach stuff here. Shout and I'll make them more accessible if necessary)
Below it is a sample of all requests made by one IP address, showing the constant retries for a single segment
Raw request log for that same agent:
It occurred to me that the devices might be racing duplicate requests and cancelling the slowest, in order to e.g. cope with bad wifi. Unfortunately we (and most people) are billed by request at the application layer than actual transfers at the network layer.
I suspect each of these requests fetch a different range of the segment. The total amount of bytes downloaded should not be higher.
Does this CDN have issues with range requests? Is the bandwidth consumption for Roku devices higher, or is only the number of HTTP (partial) GET requests higher?