wmconsulting.info
Mar 25, 2017 · 2 min read

Tuning Linux to reach maximum performance on 10 Gbps network card with HTTP Streaming.

The idea of this post, is share the experience and informations found after almost 2 months of investigation and 1 year of production use.

I found many post about how serve high numbers of traffic over 10Gbps or similar for HTTP streaming, but none of these posts share the Linux OS tuning they apply to reach this goal.

In my case, we had a extra challenge, we use P2P settings, that hitting the server around 3 times more that standard HTTP (HLS) Streaming…

When work with P2P need setting smaller size chunks, with high number of items into playlist.

The HLS spec say you need 10 sec chunks with almost 3 items into playlist. For good Sharing Ratio inside P2P is needed put 3 sec chunks and 20 items into playlist.

As HTTP Server we use Varnish, that cache all the request from Origin.

/etc/sysctl.d/20-streaming-tuning.conf

/etc/security/limits.conf

/etc/rc.local

Here you need change the Interface name for the correct based on your setup, in our server setup the public network card is “p5p1"

Here some screenshot about full capacity reached on production:

The server Spec be:

  • 2 x Intel(R) Xeon(R) CPU E5645 @ 2.40GHz (HT) = 24 logical cores
  • 16GB Ram

Any advice or feedback is welcome, feel free to write into the comments!

Enjoy!

Alejandro


wmconsulting.info

Written by

Streaming Professional Consulting Services / Wowza - Flussonic - Icecast / Akamai - CloudFlare - CloudFront

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade