I’ve read the archive of forums on a similar topic, however, I want to ask for my own situation.
I have a service in development and am planning the production resource requirements. We anticipate for every incoming live stream (h.264) there will be 100 viewers. The server specs we anticipate are below. My question is: how many inbound live streams can be handled on one server, if each live stream has 100 outbound connections?
4 Core Xeon
32 GB Ram
3.6ghz frequency
10GB bandwidth
or
2 x 6 Core Xeon (http://ark.intel.com/products/83352/Intel-Xeon-Processor-E5-2620-v3-15M-Cache-2_40-GHz)
32 GB Ram
2 x 2.4ghz frequency
10GB bandwidth
Do you have any idea about what the bit rate is going to be for the incoming streams? Will you be broadcasting the live streams back out as single bit rate streams, or will you be using transcoder? It’s very hard to pin down an exact number and without more information anything given will be a shot in the dark. So, here is some simple math to start getting an idea of what you are going to be looking at.
Assuming a 20% overhead on your bandwidth (2GB) you are looking at having 8GB of useful bandwidth. So if each stream has a bit rate of 5MB/second that would be 1,600 streams or 160 inbound streams with 100 viewers each. If the streams have a rate of 3MB/second then you would be looking at 266 inbound streams with 100 viewers each. Now, this is perfect world math and you would want to account for some wiggle room. You would also need to keep an eye on your RAM and other server performance items to verify you don’t have a pinch point there.
If you are using Transcoder you may or may not see the ability to have more connections, as everyone may be connecting at a lower bit rate, but there is a larger performance overhead to do the transcoding.
If you can spin up a server and start doing some load testing it willl give you the most honest performance benchmarks, but hopefully that gives you some loose numbers to start planning.