Abstract
As high-speed Internet connections and Internet streaming media become widespread, the demand for high-performance, cheap Internet streaming servers increases. In this paper, we look into the performance limitations of streaming server applications running on PC servers with Linux, and propose a new kernel optimization called “stream engine” that combines both copy elimination and context switch avoidance to double the streaming server throughput. Our experiments with stream engine show that for Internet streaming, eliminating context switches is just as important as eliminating data copying. Using profile data, we also project the benefits of TCP offloading hardware implementing part or all of the stream engine optimization.
Cisco Systems, Inc.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Alacritech Inc. The 1000x1 Internet protocol processor: Patented, third-generation TCP/IP Offload Engine (TOE) ASIC. In http://www.alacritech.com/html/081902a.html, Aug. 2002.
B. N. Bershad, S. Savage, P. Pardyak, E. G. Sirer, M. Fiuczynski, D. Becker, S. Eggers, and C. Chambers. Extensibility, safety and performance in the SPIN operating system. In 15th Symposium on Operating Systems Principles, pages 267–284, Copper Mountain, Colorado, 1995.
J. V. der Merwe, S. Sen, and C. Kalmanek. Streaming video traffic: Characterization and network impact. In Proceedings of 7th International Workshop on Web Content Caching and Distribution, Aug. 2002.
P. Druschel. Operating systems support for highspeed networking. Technical Report TR 94-24, Department of Computer Science, University of Arizona, Oct. 1994.
P. Druschel and L. L. Peterson. Fbufs: A high-bandwidth cross-domain transfer facility. In Symposium on Operating Systems Principles, pages 189–202, 1993.
Intel. Intel PRO/1000T IP storage adaptor. In http://www.intel.com/network/connectivity/resources/doc_library/data_sheets/pro1000_T_IP_SA.pdf, Feb. 2002.
M. F. Kaashoek, D. R. Engler, G. R. Ganger, H. M. Briceno, R. Hunt, D. Mazieres, T. Pinckney, R. Grimm, J. Jannotti, and K. Mackenzie. Application performance and flexibility on exokernel systems. In Proceedings of the 16th ACM Symposium on Operating Systems Principles (SOSP’ 97), pages 52–65, Saint-Malo, France, October 1997.
I. M. Leslie, D. McAuley, R. Black, T. Roscoe, P. T. Barham, D. Evers, R. Fairbairns, and E. Hyden. The design and implementation of an operating system to support distributed multimedia applications. IEEE Journal of Selected Areas in Communications, 14(7):1280–1297, 1996.
J. Liedtke. Improving IPC by kernel design. In 14th ACM Symposium on Operating System Principles (SOSP), Dec. 1993.
Linux man page. Linux system call sendfile(2). In http://www.die.net/doc/linux/man/man2/sendfile.2.html, 2000.
D. L. Moai. Cost-effective streaming server implementation using hi-tactix. In ACM Multimedia 2002, 2002.
J. Mogul. TCP offload is a dumb idea whose time has come. In Proceedings of the 9th Workshop on Hot Topics in Operating Systems (HotOS IX), 2003.
A. B. Montz, D. Mosberger, S. W. O’Malley, L. L. Peterson, T. A. Proebsting, and J. H. Hartman. Scout: A communications-oriented operating system (abstract). In Operating Systems Design and Implementation, page 200, 1994.
Open-Source Community. The Apache Software Foundation, 2003. http://www.apache.org/.
V. S. Pai, P. Druschel, and W. Zwaenepoel. Flash: An efficient and portable web server. In Proceedings of the 1999 USENIX Technical Conference, Monterey, CA, June 1999.
V. S. Pai, P. Druschel, and W. Zwaenepoel. IO-Lite: A unified I/O buffering and caching system. ACM Transactions on Computer Systems, 18(1):37–66, 2000.
H. Schulzrinne, A. Rao, and R. Lanphier. Real time streaming protocol (RTSP). RFC 2326, IETF Network Working Group, 1998.
SGI — Developer Central Open Source. Linux Kernprof (kernel profiling). In http://oss.sgi.com/projects/kernprof/, 2002.
Trebia Networks, Inc. SNP-1000i dual port TCP offload engine. In http://www.trebia.com/products/snp_1000i.shtml, Oct. 2002.
R. von Behren, J. Condit, and E. Brewer. Why events are a bad idea (for high-concurrency servers). In Proceedings of the 9th Workshop on Hot Topics in Operating Systems (HotOS IX), 2003.
WindRiver Systems, Inc. Complete TCP/IP offload for high-speed ethernet networks. In http://www.windriver.com/products/tina/tcpip_offload.pdf, Sept. 2001.
E. Yeh, H. Chao, V. Mannem, J. Gervais, and B. Booth. Introduction to TCP/IP Offload Engine (TOE). In http://www.10gea.org/SP0502IntroToTOE_F.pdf, Apr. 2002.
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2004 Kluwer Academic Publishers
About this paper
Cite this paper
Lemon, J., Wang, Z., Yang, Z., Cao, P. (2004). Stream Engine: A New Kernel Interface for High-Performance Internet Streaming Servers. In: Douglis, F., Davison, B.D. (eds) Web Content Caching and Distribution. Springer, Dordrecht. https://doi.org/10.1007/1-4020-2258-1_11
Download citation
DOI: https://doi.org/10.1007/1-4020-2258-1_11
Publisher Name: Springer, Dordrecht
Print ISBN: 978-1-4020-2257-9
Online ISBN: 978-1-4020-2258-6
eBook Packages: Springer Book Archive