Tuesday December 06, 2005 | Constantin's Blooog |
|
Useful stuff for your blog-reading pleasure.
All
|
General
S[c|tr]eaming PerformanceOne of the reasons I enjoy working for Sun is: You work with cool technology on a day-by-day basis, and you get to apply it to customer problems, enabling elegant solutions. With today's launch of Sun's line of UltraSPARC T1 based servers, another cool piece of technology hits the market, waiting to solve interesting problems. One of the problems that can be solved with UltraSPARC T1 (code-named Niagara) very elegantly is processing large numbers of video streams. During the early access phase of Niagara testing, I had the honor of working with a customer that develops video streaming solutions for mobile networks. It turned out that the Sun Fire T2000 server is perfectly suited to do just that. We tested a number of streaming servers on the T2000 and applied load-generators to simulate large numbers of users accessing streams from the machine. After some tweaking and testing, it turned out that the Sun Streaming Server (SSS) was the best software to deliver video streams with. This sounds like a shameless plug for our own software, but the history of this piece of software explains it: The Sun Streaming Server has been especially developed to scale on machines with large numbers of processors and to be as efficient as possible in delivering large numbers of streams. Since the UltraSPARC T1 processor presents up to 32 virtual CPUs to the operating system, it is a natural fit. For our tests, we used MPEG4/H.264 video streams at a maximum bandwidth of 112 kbps, which is a typical bandwidth for wireless streaming to mobile handsets. Our T2000 unit managed to sustain more than 10000 of these streams with SSS, at more than 80% of the UltraSPARC T1's CPU utilization. Each of these 10000 streams needs to be broken down into packets suitable for mobile handsets, plus any protocol overhead. So, at an average packet size of 40-150 bytes in mobile environments, this translates to between 1 and 3.5 million packets per second streaming out of the UltraSPARC T1 processor. It's important to point out how different players work together in this scenario. While the UltraSPARC T1 hardware is astonishing enough, it needs some help from the Solaris 10 CMT optimized scheduler to keep all 32 threads busy (just as if it were a 32-CPU SMP machine). Moreover, the Solaris network driver for the T2000 has been optimized to take advantage of CMT in order to efficiently handle all those packets. And finally, the Sun Streaming Server did its part of the job by beautifully scaling across all 32 threads and implementing streaming protocols very efficiently. So, again, it's the whole system that delivers the performance, not the hardware, or the software or the application by itself. That's why Sun is a "Systems" company, not just a hardware, software or OS company. Replacing many servers that do the same thing with a small amount of more powerful and efficient ones is called "horizontal consolidation" and the above is a nice example of it. Another opportunity for UltraSPARC T1 systems to deliver great value is in "vertical consolidation": Different software tiers or layers of an overall architecture get consolidated into the same machine. In the above example, we could include the content management system that provides the web pages around the video content, or the billing infrastructure with a database behind the streaming server inside the same machine, the same processor. The huge advantage here is that we can now include the network communication between tiers into the chip itself, leveraging the 134 GB/s crossbar switch inside the chip as our 134 GB/s network infrastructure! By vertically consolidating multiple tiers onto an UltraSPARC T1 machine, we therefore can improve networking performance and latency between tiers while getting rid of network switches, cables, etc., further saving power and costs. Again it's the OS that helps us here: Solaris Containers help us manage the resources inside the CPU and distribute the workload onto it while making sure that software components don't disturb each other. To the admins of those different tiers in the architecture, it still feels like multiple servers they can control, while for efficiency, it all runs inside the same microsystem. With that in mind, happy consolidating, be it horizontally or vertically. Technorati Tags: NiagaraCMT
"S[c|tr]eaming Performance" has been brought to you by Constantin's Blooog.
This entry was created on 2005-12-06 08:00:00.0 PST and is associated with the following tags:
Comments:
Post a Comment: Comments are closed for this entry. « Why having a royalty... | Main | The Return of the... » |
|