Wowza is causing us troubles, not scaling past 6k concurrent users, sometimes freezing on a few hundred. It crashes and starts killing sessions. We step in to restart Wowza multiple times per streaming event.
Our server specs:
DL380 Gen10
2x Intel Xeon Silver 4110 / 2.1 GHz
64 GB RAM
300 GB HDD
The network 10 GB dedicated
Some servers running Centos 6, others Centos 7
Java version 1.8.0_20 64-bit
Wowza streaming engine 4.2.0
I asked and was told:
Wowza scales easily to millions if you put a CDN in front of it (which is trivially easy to do). 6K users off a single instance simply ain’t happening. For one, Java maxes out at around 4Gbps per JVM instance. So even if you have a 10G NIC on the machine, you’ll want to run multiple instances if you want to use the full bandwidth.
And:
How many 720 streams can you do on a 10gb network @ 2mbps?
Without network overhead, it’s about 5,000
With the limitation of java at 4gbps, it’s only 2,000 per instance. Then if you do manage to utilize that 10Gb network and saturate it, what happens to all other applications people are accessing on other servers?
If they want more streams, they need edge servers in multiple data centers or have to somehow to get more 10Gb networks installed.
That’s for streaming only. No idea what transcoding would add in terms of CPU load and disk IO.
So I began looking for an alternative to Wowza. Due to the nature of our business, we can't use CDN or cloud hosting except with very few clients. Everything should be hosted in-house, in the client's datacenter.
I found this article and reached out to the author to ask him about Flussonic and how it compares to Wowza. He said:
I can't speak to the 4 Gbps limit that you're seeing in Java. It's also possible that your Wowza instance is configured incorrectly. We'd need to look at your configuration parameters to see what's happening.
We've had great success scaling both Wowza and Flussonic media servers by pairing them with our peer-to-peer (p2p) CDN service. That was the whole point of the article we wrote in 2016
Because we reduce the number of HTTP requests that the server has to handle by up to 90% (or more), we increase the capacity of each server by 10x - meaning each server can handle 10x the number of concurrent viewers.
Even on the Wowza forum, some people say that Java maxes out at around 5Gbps per JVM instance. Others say that this number is incorrect, or made up.
Due to the nature of our business, this number, as silly as it is, means so much for us. If Java cannot handle more than 7k viewers per instance, we need to hold meetings and discuss what to do with Wowza.
So is it true that Java maxes out at around 4Gbps or 5Gbps per JVM instance?