Varnish Cache as a robust distribution mechanism for HLS and HDS video

Varnish Cache as a robust distribution mechanism for HLS and HDS video

We recently came across an article on the Adobe blog that covers Adobe Media Server 5 (AMS5). AMS is an Adobe software product to help content publishers deliver video across platforms to various platforms.The article goes into details on setting up Varnish in front of AMS in order to increase performance and facilitate distribution of the content in order to build a robust video streaming solution.

HTTP video streaming, usually done through HLS or HDS is very well suited for distribution through Varnish Cache. The article basically explains how Varnish helps solve a challenge in the AMS5’s current architecture and how to configure Varnish for doing that.

When performance testing Varnish Cache with HLS video we’ve seen Varnish Cache push as much as 76 Gbit/s of content. Since each HTTP object is rather big the limiting factor is usually the bandwidth available. It’s not everyday we come across blog posts that so thoroughly go through Varnish Cache. Hats off to Karishma and Andrew for their write up.

You can read the article here.

Picture is (c) Sony Mobile and used under a CC licence.

Add comment

Refresh Type the characters you see in this picture.
Type the characters you see in the picture; if you can't read them, submit the form and a new image will be generated. Not case sensitive.  Switch to audio verification.


74Gbit/s, from one server? Care to share the setup you used to achieve this.

Per Buer's picture

This was with a Gen8 HP Proliant server with gen3 PCI buses (like DL380 or ML350) with two 40Gbit/s network cards. You need to take care to balance the cards into the right slots so the two cards are handled by different CPUs. MTU was 4096 (it could not be set higher due to some interop issues with Windows, which was acting as origin server in the setup). The video fragments where 2MB.

Actually I see the reported result was 76Gbit/s, so I was slightly off. :-)

Can you share more information about your performance testing ?
How many concurrent streams did you get to ?
How many memory and CPUs server had ?

Thanks a lot