Archive for August, 2008

Breaking 1Gbps with Flash Media Server

I’ve received a lot of requests lately about how much media can be delivered through Flash Media Server (FMS). As you may or may not know, FMS is held to the same limitations as most other streaming or HTTP servers, that is the available bandwidth, disk speed, memory and CPU power on a single server. When we introduced Flash Media Server 3 we increased the performance significantly to allow you to take full advantage of hardware and ultimately help to reduce the total cost of ownership.

Generally network administrators will run a server network adaptor anywhere from 60-80% capacity (average about 700Mbps). This is not the limit of what FMS is capable of. Limiting utilization is useful to allow burst headroom, and to reduce the CPU load. There is a direct relationship between the network adaptor and the server’s CPU. As a network adaptor utilization nears 100%, the server’s CPU utilization significantly increases.
Both Flash Media Interactive Server 3 and Flash Media Streaming Server 3 can deliver more than 1Gbps from a single server. There are 2 key ways to increase the total capacity on both Windows and Linux. First, you could purchase and install a 10Gbps network card. This is not a typical practice (yet) because these cards are still very expensive – hopefully that will change soon. A more common way to increase capacity is to use multiple network adaptors (NICs).

When doing this, you amalgamate the total throughput to break the 1 Gbps limit. The sub-100% utilization of each network interface should still be practiced in your capacity planning. 2 Network cards could provide up to 1.4Gbps per server (measured at 70% utilization/NIC). The method to do this is called “bonding” in Linux or “teaming” in Windows. Flash Media Server leverages the resources of the hardware available by the server. These techniques are done in the operating system and not with Flash Media Server configuration.

Flash Media Server can be also configured to manage multiple network cards as separate resources. You can provision streaming at the adaptor level, and bind delivery of specific media or communications on different network cards. With either of these solutions, you will still be limited by the total data center and switch capacity.
Using multiple network adaptors may help to reduce your total delivery costs by serving more streams with less hardware.

Here is a sample calculation for determining the number of servers you need with multiple network cards.

 
Number of Servers required
 
1,000 streams @ 700Kbps
5,000 streams @ 700Kbps
10,000 streams @ 700Kbps
25,000 streams @ 700Kbps
100,000 streams @ 700Kbps
1 Gbps NIC
1
5
10
25
100
2 Gbps NICs
1
3
5
13
50

The threshold for these calculations is 700Mbps (70%) of a 1Gbps network interface. You can choose to run the network cards at a higher percentage if you are sure you don’t need the extra head room. As you increase the utilization, you will reduce the number of servers required.

To understand more about using multiple network cards in Windows Server 2003 you can visit:
http://support.microsoft.com/kb/254101

To understand more about using multiple network cards in Linux Red Hat you can visit:
http://www.redhat.com/docs/manuals/csgfs/browse/rh-cs-en/s1-hardware-connect.html