-->
Save your seat for Streaming Media NYC this May. Register Now!

Configuring Servers For Streaming

Transfer speed is mainly a function of the network architecture, whereas server response time depends upon these resources: CPU, RAM, storage, and I/O performance. Here’s the skinny on configuring a streaming server:

  • Because streaming media tends to be more I/O intensive than CPU intensive, processor performance isn’t likely to be a major bottleneck. The speed of the processor and the amount of RAM will have more influence on the number of streams you can support.

  • The more storage, the better. It’s no secret that audio and video are disk hogs. How much storage, what kind, and how close it is to the server will affect content accessibility.

  • Network interface cards (NICs) need to be high-bandwidth. Gigabit Ethernet or ATM is preferred. For fault tolerance and performance, multiple NICs are recommended.

  • Selecting an operating system can be as simple as saying, "We are a Windows shop so we will use Windows." It also can be as complex as analyzing which operating system performs best with which hardware architecture. Window NT, Window 2000, Linux, Solaris, Irix, and Mac OS X are the predominate operating systems for streaming media software servers. Any of these operating systems can meet most or all of your streaming media requirements.

  • The best way to maximize data speed is to identify bottlenecks. Make sure controllers can support the speeds you need, and that your equipment and configuration are load balanced. Consider your expansion needs. It will make a big difference when you want to add incremental storage that you didn't plan on adding.

    Any performance monitor that comes with the OS should be able to tell you how your server is doing with regard to processors, memory and I/O. For example, you may need to upgrade your server’s CPU, or add another server, when CPU usage exceeds 85% or more. You might want to add more RAM if available memory drops below 4MB during operation. A good indicator that the server is being overloaded with traffic is if the packets being sent are considerably lower than the packets requested.

    Processing and CPUs

    Because most streaming server software is multi-threaded, it is well suited for symmetric multiprocessing (SMP) servers. This means that the streaming media software can perform the same process over multiple processors by simultaneously running a different thread (or copy of the server) on each processor. SMP servers are additionally useful if you’re generating numerous SMIL (Synchronized Multimedia Integration Language) media files. A SMIL file coordinates the layout and playing of two or more media clips in parallel (simultaneously) or in sequence. This activity is enhanced when distributed across multiple CPUs.

    Adding more processors does not provide linear performance gains. For example, adding a second processor will increase performance less than 100%. As each successive processor is added, server resources are consumed to manage the distribution of work across those processors and, in fact, there is a point of diminishing returns. At some point, adding an additional processor to an SMP server will actually slow the performance of the server to below the level of the previous number of processors. Also, not all SMP server architectures are created equal. The ability of a server to scale up with the addition of processors is based on many design factors. These include:

  • The integrity and granularity locking data structures within the operating system
  • The operating system scheduler
  • Cache coherency in both hardware and software
  • Operating system state restoration algorithms
  • The amount of cache and cache speed on the processor
  • The server hardware design including the backplane and interface with the processor boards

    Despite conventional wisdom, the processor clock speed is not an absolute indication of processor performance, either. This is particularly true when comparing different brands of processors. A 500MHz Alpha may perform equally to a 900MHz Pentium III. An AMD 700MHz XP may outperform a 900MHz Pentium III. Comparing processor speeds from different manufacturers is like determining how fast your car is going by looking at the tachometer. You can do it, but you must have other information. Here are a few tips that might help:

    Tip: Pentium III Xeons are Intel’s processors specifically designed for SMP servers. They are very fast even compared to performance benchmarks against RISC CPUs such as Sun SPARC, IBM/Motorola PowerPC, Compaq/Intel Alpha, and Silicon Graphics MIPS.

    Tip: Intel’s Pentium IV processors do not provide significant performance gains for streaming media servers, and in many cases are actually slower than Pentium III (as shown in documented benchmarks). The de facto benchmark standard for CPU performance is SPEC. More information can be found at http://www.specbench.org/

    Tip: Consider AMD as an alternative to Intel. In most cases, AMD processors have better performance for less cost. A word of warning, though: People have reported in recent months that there may be reliability issues with AMD processors and streaming.

    Tip: Look for lots of Primary Cache (also known as L1 Cache). It is the fastest and most expensive cache. It is integrated into the actual microprocessor. More is better.

    Tip: Secondary Cache (also known as L2 Cache) is good for streaming, too. L2 Cache is expensive but will have a direct impact on the number of streams a processor can service. L2 Cache is also particularly important to SMP servers. It is faster than main memory and operates between the processor and main memory. L2 cache is larger than L1 cache and is typically integrated within the CPU silicone. More is better.

    Look for Part Two of this article in the coming weeks. Topics to be discussed include: Memory, Server I/O subsystems, Storage Pointers, and RAID.

  • Streaming Covers
    Free
    for qualified subscribers
    Subscribe Now Current Issue Past Issues