Wowza Streaming Engine 4 + OnApp CDN Http-Pull

Hello everyone, we’ve hired FdcServers’s CDN service by OnApp CDN.

Once hired, they’ve asked us to create a resource on the CDN as “http-pull” and they’ve enabled it for HLS performance.

In wowza, we have a Live Application that publishes HLS Urls that they’re pulled from that resource on the OnApp CDN system.

We have added on the Wowza Application the cache expiry headers:

cupertinoCacheControlPlaylist = max-age=5

cupertinoCacheControlMediaChunk = max-age=300

And if we test the wowza URL directly using curl -I “http://ourWowza/myApp/myStrean/playlist.m3u8”, it shows the cache expiry correctly.

If we try that on the CDN URL it also shows the cache as “Hit” correctly with its x-age, x-cache and everything as configured on the cupertinoCacheControlPlaylist setting.

I don’t seem to find a way to try chunks (at least not with curl -I), so I don’t know how to test the cupertinoCacheControlMediaChunk setting.

My problem is that I think CDN is not handling the cache efficiently or I need to configure something else, since it seems to consume about the same bandwidth on the CDN and the Wowza Origin as well. I expected to have low bandwidth from Wowza Origin and lots from CDN.

Example of my problem:

Please suppose I have just 1 Live Application with 1 Stream.

If I had no CDN running but Only 1 wowza origin-repeater instead, I would see on my Wowza Dashboard 1,000 connections consuming 800 mbps directly from customers.

Using the CDN pulling from the Wowza Origin, I still see on My Wowza Dashboard about 900 connections and about 700 mbps (coming from CDN) on the Wowza Origin Server!!!

And on the OnApp CDN Dashboard I see around 800 mbps. (I can’t see how many connections)

I can’t figure out where lies my problem, but I would expect on this scenario: (Please correct me if Im wrong)

On wowza Streaming server: I would expect just 1 or 2 connections, and only around 2 mbps from CDN pulling the content. (not the customers).

And on CDN I would expect to see 800 mbps from Customers, most of the data served it would be the “cached” data pulled from the Origin.

Is there a tutorial or details on how to fix this? or I am totally wrong about how CDNs work.?

Please Advice

Sebastian

Hello

Thanks for contacting Wowza Forums!

On your setup, have you tried to push the stream to your CDN and then configure your distribution player to only pull from the CDN? That way, end users will only connect to the CDN?

Her is an article on this: Push Publish

Let us know if this is something you can do and resolves your issue.

Regards,

Jermaine

Hi,

I run a similar setup so maybe I can throw out a few things. First off don’t expect to get get much network performance out of this. This is a live stream and in turn will always been connected to the origin. To put CDN/EDGE in front of a live app, you have more gain towards more raw server load than bandwidth usage.

How much are you expecting from cdn performance? Your viewers can only pull from cache the amount of delay you have in the stream. Say you have a 30 sec delay and your chunks are 10 seconds. Well that’s only 3 files that can be pulled from cache and then its going to need new stuff. Your caching your playlist for 5 seconds. Thats a 5 second delay. How may chunks is this per your setup?

Very important if sitting behind any kind of caching.

LiveHTTPOrigin

Few curl test examples. Not hard to follow along. The m3u8s are nothing more than playlists.

curl ‘http://wowza/appname/definst/test.mp4/playlist.m3u8’

#EXTM3U

#EXT-X-VERSION:3

#EXT-X-STREAM-INF:BANDWIDTH=721323,CODECS=“avc1.100.30,mp4a.40.2”,RESOLUTION=600x450

chunklist.m3u8

#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=338,CODECS=“avc1.100.30”,URI=“chunklist_ko.m3u8”

curl ‘http://wowza/appname/definst/test.mp4/chunklist.m3u8’

#EXTM3U

#EXT-X-VERSION:3

#EXT-X-ALLOW-CACHE:NO

#EXT-X-TARGETDURATION:10

#EXT-X-MEDIA-SEQUENCE:0

#EXTINF:10.0,

media_0.ts

#EXTINF:10.0,

media_1.ts

#EXTINF:9.995,

media_2.ts

#EXT-X-ENDLIST

curl -IL ‘http://wowza/appname/definst/test.mp4/media_0.ts’

HTTP/1.1 200 OK

Accept-Ranges: bytes

Server: WowzaStreamingEngine/4.2.0

Cache-Control: max-age=3600

Date: Wed, 15 Feb 2017 18:42:16 GMT

Content-Type: video/MP2T

Content-Length: 772116