August 10, 2014

Utilizing all bandwidth with Nimble Streamer

Our customers use Nimble Streamer for wide variety of scenarios. Some of them use it in extreme use cases when they need to utilize all the bandwidth they have to serve their video to the maximum number of users. Since Nimble is very light-weight, it is possible to get the most of any network available long before running out of resources.

Recently our customer used Nimble Streamer to take all he can from his 10 Gbps channel. And he succeeded. Thousands of viewers were pulling 7 streams of various bitrates, mostly 1.5Mbps.

Here's what collectd monitoring shows, 10Gbps at peak.

Collectd stats.
WMSPanel stats shows similar numbers. The panel gets peak data number each 30 seconds so the data varies a bit from what we see in collectd chart.

Peak bandwidth as seen from Nimble Streamer perspective.

Nearly 13K connection were established within 15-minute intervals, you can see that on the screenshot below. Having in mind real-time monitoring during the event we can say that it had nearly 6000 simultaneous connections to this instance.

Retrospective chart for streaming event.


Did it go well for the host server which Nimble Streamer was running on? Yes, it feels fine. Check the charts for CPU and memory usage. CPU level for 8 cores was less than 40% and RAM amount grew up to 4GB on the topmost peak. The majority of RAM was used by OS networking according to "htop" output.

Nimble Streamer host server parameters.
Some fine tuning was made to get the most out the available hardware but not much.

This is one of the example of how Nimble Streamer can be used for creating high-performance streaming infrastructure. You may also take a look at Nimble's usage as part of large CDN and get familiar with live streaming use cases.

If you have any question regarding Nimble Streamer and its usage, just contact us any time.

Related documentation


Nimble Streamer performance tuningLive streaming with NimbleTransmuxing RTMP to HLSAdaptive bitrate for RTMP to HLSPull RTMP to transmux into HLSNimble configs explainedCPU and RAM level alertsLive Transcoder for Nimble StreamerBuild streaming infrastructure with Nimble Streamer,

5 comments:

  1. Impressive performance!

    In the benchmark above, does "connections" mean one connection to one HLS stream by one viewer? In other words, if the viewers are watching only one stream at a time, will the number of simultaneous connections equal to number of simultaneous viewers? Or is there anything in the fetching of HLS stream that creates more than one connection per stream?

    ReplyDelete
  2. Also, is this for streaming, transmuxing, or re-streaming?

    ReplyDelete
  3. Shafqat,

    This is correct - if the viewers are watching only one stream at a time, the number of simultaneous connections are equal to number of simultaneous viewers. For the given example, there were several streams, each having thousands of connected viewers.

    This example shows live transmuxing from published RTMP stream to HLS. 10Gpbs is the transmission speed for outgoing connections.

    ReplyDelete
  4. Now with Windows version of Nimble streamer available as well, can same level of performance be expected from a windows based nimble streamer? (ignoring the hardware requirements for Windows GUI based platform)

    ReplyDelete
  5. Yes, it should have the same level on performance as Nimble the majority of core source code is the same across platforms. If you have any benchmarks on your platform, feel free to share them by sending email to sales (at) wmspanel.com

    ReplyDelete