Load Testing of Live video streaming Server
We have a app which has the feature of Live streaming(E.g. Live cricket match). We want to Load test this feature. I tried it with Jmeter But didn't get succeeded. What I am trying to do is increasing the count of viewers of that stream. SO user should go to that stream page and stay there for atleast 30 mins watching that video stream. I want to scale it to 5000 users at time. Server is backed by IRIS and works on HTTP Live Streaming. Stream is embedded in Flshplayer.
Need help on this. I have opened up every possible link on the internet
UNICAST or MULTICAST? This makes a significant difference on the load on the server and on the network. MULATICAST is much more efficient (think TV broadcast versus having to service every TV individually). Is your service integrated with AKAMAI or FACEBOOK or YOUTUBE for reaching your end users? This also makes a significant difference on server and network load for your server. What metrics are you going to measure? Response time has no meaning in a streaming context. I would suggest some research on MOS (Mean Opinion Score). Are you more concerned with the network or the server load? Again, UNICAST versus MULTICAST makes a significant difference. Are you integrated with third party services, such as LiveStream where the load is actually borne by their servers instead of your own? Note, I am a LiveStream customer, a very happy one at that, and it is integrated with Akamai and others for worldwide streaming.
Originally Posted by Nitin Bansal
If the concern is network, then look at IXChariot and it's testing capability for live streaming load on the network. If Application layer, then consider the latest versions of LoadRunner which have just extended the capability set on the streaming video front.
Tooling wise, I'd recommend using a tool that lets you write the low level network code. Tools I know of are Grinder for Java, The Grinder, a Java Load Testing Framework, and Locust.io and Mechanize for Python, Locust - A modern load testing framework , https://github.com/cgoldberg/multi-mechanize , and also Visual Studio Ultimate with TeamFoundation (aka visual studio online), https://www.visualstudio.com/feature...d=SEM_VXYJ2qCF
Essentially, these tools let you write the request and processing in pure code. Then run that code in parallel threads and processes.
HTTP Live Streaming is basically serving several media files in form of M3U8 playlists, all you need is to extract these files paths and download them with JMeter (providing reasonable think times between requests of course to mimic real user watching / listening the stream).
See How to Load Test HTTP Live Media Streaming (HLS) with JMeter article for detailed walkthrough.