Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/3098822.3098844acmconferencesArticle/Chapter ViewAbstractPublication PagescommConference Proceedingsconference-collections
research-article
Free access

Disk|Crypt|Net: rethinking the stack for high-performance video streaming

Published: 07 August 2017 Publication History

Abstract

Conventional operating systems used for video streaming employ an in-memory disk buffer cache to mask the high latency and low throughput of disks. However, data from Netflix servers show that this cache has a low hit rate, so does little to improve throughput. Latency is not the problem it once was either, due to PCIe-attached flash storage. With memory bandwidth increasingly becoming a bottleneck for video servers, especially when end-to-end encryption is considered, we revisit the interaction between storage and networking for video streaming servers in pursuit of higher performance.
We show how to build high-performance userspace network services that saturate existing hardware while serving data directly from disks, with no need for a traditional disk buffer cache. Employing netmap, and developing a new diskmap service, which provides safe high-performance userspace direct I/O access to NVMe devices, we amortize system overheads by utilizing efficient batching of outstanding I/O requests, process-to-completion, and zerocopy operation. We demonstrate how a buffer-cache-free design is not only practical, but required in order to achieve efficient use of memory bandwidth on contemporary microarchitectures. Minimizing latency between DMA and CPU access by integrating storage and TCP control loops allows many operations to access only the last-level cache rather than bottle-necking on memory bandwidth. We illustrate the power of this design by building Atlas, a video streaming web server that outperforms state-of-the-art configurations, and achieves ~72Gbps of plaintext or encrypted network traffic using a fraction of the available CPU cores on commodity hardware.

Supplementary Material

WEBM File (diskcryptnetrethinkingthestackforhighperformancevideostreaming.webm)

References

[1]
M. Accetta, R. Baron, D. Golub, R. Rashid, A. Tevanian, and M. Young. Mach: A New Kernel Foundation for UNIX Development. Technical report, Computer Science Department, Carnegie Mellon University, August 1986.
[2]
Adobe HTTP Dynamic Streaming. http://wwwimages.adobe.com/content/dam/Adobe/en/devnet/hds/pdfs/adobe-hds-specification.pdf.
[3]
N. Amit, M. Ben-Yehuda, D. Tsafrir, and A. Schuster. vIOMMU: Efficient IOMMU Emulation. In Proceedings of the 2011 USENIX Conference on USENIX Annual Technical Conference, USENIXATC'11, pages 6--6, Berkeley, CA, USA, 2011. USENIX Association.
[4]
BBC Digital Media Distribution: How we improved throughput by 4x. http://www.bbc.co.uk/blogs/internet/entries/.
[5]
A. Belay, G. Prekas, M. Primorac, A. Klimovic, S. Grossman, C. Kozyrakis, and E. Bugnion. The IX Operating System: Combining Low Latency, High Throughput, and Efficiency in a Protected Dataplane. ACM Trans. Comput. Syst., 34(4):11:1--11:39, Dec. 2016.
[6]
B. N. Bershad, S. Savage, P. Pardyak, E. G. Sirer, M. E. Fiuczynski, D. Becker, C. Chambers, and S. Eggers. Extensibility Safety and Performance in the SPIN Operating System. In Proceedings of the Fifteenth ACM Symposium on Operating Systems Principles, SOSP '95, pages 267--283, New York, NY, USA, 1995. ACM.
[7]
S. Boyd-Wickizer, H. Chen, R. Chen, Y. Mao, F. Kaashoek, R. Morris, A. Pesterev, L. Stein, M. Wu, Y. Dai, Y. Zhang, and Z. Zhang. Corey: An Operating System for Many Cores. In Proceedings of the 8th USENIX Conference on Operating Systems Design and Implementation, OSDI'08, pages 43--57, Berkeley, CA, USA, 2008. USENIX Association.
[8]
S. Boyd-Wickizer, A. T. Clements, Y. Mao, A. Pesterev, M. F. Kaashoek, R. Morris, and N. Zeldovich. An Analysis of Linux Scalability to Many Cores. In Proceedings of the 9th USENIX Conference on Operating Systems Design and Implementation, OSDI'10, pages 1--16, Berkeley, CA, USA, 2010. USENIX Association.
[9]
Chelsio 40GbE Netmap Performance. http://www.chelsio.com/wp-content/uploads/resources/T5-40Gb-FreeBSD-Netmap.pdf.
[10]
Intel Data Direct IO. http://www.intel.com/content/www/us/en/io/data-direct-i-o-technology.html.
[11]
Intel Data Plane Development Kit. http://dpdk.org.
[12]
D. R. Engler, M. F. Kaashoek, and J. O'Toole, Jr. Exokernel: An Operating System Architecture for Application-level Resource Management. In Proceedings of the Fifteenth ACM Symposium on Operating Systems Principles, SOSP '95, pages 251--266, New York, NY, USA, 1995. ACM.
[13]
S. Han, S. Marshall, B.-G. Chun, and S. Ratnasamy. MegaPipe: a new programming interface for scalable network I/O. In Proceedings of the 10th USENIX conference on Operating Systems Design and Implementation, pages 135--148. USENIX Association, 2012.
[14]
HTTP Live Streaming. https://tools.ietf.org/html/draft-pantos-http-live-streaming-23.
[15]
M. Honda, F. Huici, C. Raiciu, J. Araujo, and L. Rizzo. Rekindling Network Protocol Innovation with User-level Stacks. SIGCOMM Comput. Commun. Rev., 44(2):52--58, Apr. 2014.
[16]
E. Y. Jeong, S. Woo, M. Jamshed, H. Jeong, S. Ihm, D. Han, and K. Park. mTCP: A Highly Scalable User-level TCP Stack for Multicore Systems. In Proceedings of the 11th USENIX Conference on Networked Systems Design and Implementation, NSDI'14, pages 489--502, Berkeley, CA, USA, 2014. USENIX Association.
[17]
J. Lemon. Kqueue - A Generic and Scalable Event Notification Facility. In Proceedings of the FREENIX Track: 2001 USENIX Annual Technical Conference, pages 141--153, Berkeley, CA, USA, 2001. USENIX Association.
[18]
I. Marinos, R. N. Watson, and M. Handley. Network Stack Specialization for Performance. In Proceedings of the 2014 ACM Conference on SIGCOMM, SIGCOMM '14, pages 175--186, New York, NY, USA, 2014. ACM.
[19]
A. Markuze, A. Morrison, and D. Tsafrir. True IOMMU Protection from DMA Attacks: When Copy is Faster Than Zero Copy. In Proceedings of the Twenty-First International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS '16, pages 249--262, New York, NY, USA, 2016. ACM.
[20]
Dynamic adaptive streaming over HTTP (DASH) --- Part 1: Media presentation description and segment formats, April 2012. ISO/IEC 23009-1 (http://standards.iso.org/ittf/PubliclyAvailableStandards).
[21]
Netflix Appliance Software. https://openconnect.netflix.com/en/software/.
[22]
NVM Express Specification 1.2.1. http://www.nvmexpress.org/specifications/.
[23]
Intel P3608 NVME drive. http://www.intel.com/content/www/us/en/solid-state-drives/solid-state-drives-dc-p3608-series.html.
[24]
V. S. Pai, P. Druschel, and W. Zwaenepoel. IO-Lite: A unified I/O buffering and caching system. Operating systems review, 33:15--28, 1998.
[25]
R. H. Patterson, G. A. Gibson, E. Ginting, D. Stodolsky, and J. Zelenka. Informed Prefetching and Caching. In Proceedings of the Fifteenth ACM Symposium on Operating Systems Principles, SOSP '95, pages 79--95, New York, NY, USA, 1995. ACM.
[26]
A. Pesterev, J. Strauss, N. Zeldovich, and R. T. Morris. Improving Network Connection Locality on Multicore Systems. In Proceedings of the 7th ACM European Conference on Computer Systems, EuroSys '12, pages 337--350, New York, NY, USA, 2012. ACM.
[27]
S. Peter, J. Li, I. Zhang, D. R. K. Ports, D. Woos, A. Krishnamurthy, T. Anderson, and T. Roscoe. Arrakis: The Operating System is the Control Plane. In Proceedings of the 11th USENIX Conference on Operating Systems Design and Implementation, OSDI'14, pages 1--16, Berkeley, CA, USA, 2014. USENIX Association.
[28]
RFC5288: AES Galois Counter Mode (GCM) Cipher Suites for TLS.
[29]
L. Rizzo. Netmap: A Novel Framework for Fast Packet I/O. In Proceedings of the 2012 USENIX Conference on Annual Technical Conference, USENIX ATC'12, pages 9--9, Berkeley, CA, USA, 2012. USENIX Association.
[30]
Sandvine 2015 Global Internet Phenomena Report. https://www.sandvine.com/downloads / general / global - internet - phenomena / 2015 / global - internet - phenomena-report-latin-america-and-north-america.pdf.
[31]
L. Soares and M. Stumm. FlexSC: Flexible System Call Scheduling with Exception-less System Calls. In Proceedings of the 9th USENIX Conference on Operating Systems Design and Implementation, OSDI'10, pages 33--46, Berkeley, CA, USA, 2010. USENIX Association.
[32]
Intel Storage Performance Development Kit. http://www.spdk.io.
[33]
R. Stewart, J.-M. Gurney, and S. Long. Optimizing TLS for high--bandwidth applications in FreeBSD. In Proc. Asia BSD conference, 2015.

Cited By

View all
  • (2024)SmartDIMM: In-Memory Acceleration of Upper Layer Protocols2024 IEEE International Symposium on High-Performance Computer Architecture (HPCA)10.1109/HPCA57654.2024.00032(312-329)Online publication date: 2-Mar-2024
  • (2024)Modeling and Evaluating a Cache System in ICN Routers Using a Programmable Switch and ComputersIEEE Access10.1109/ACCESS.2024.348458812(154426-154442)Online publication date: 2024
  • (2022)Efficient and scalable core multiplexing with M³vProceedings of the 27th ACM International Conference on Architectural Support for Programming Languages and Operating Systems10.1145/3503222.3507741(452-466)Online publication date: 28-Feb-2022
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
SIGCOMM '17: Proceedings of the Conference of the ACM Special Interest Group on Data Communication
August 2017
515 pages
ISBN:9781450346535
DOI:10.1145/3098822
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 07 August 2017

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Network Performance
  2. Network stacks
  3. Storage stacks

Qualifiers

  • Research-article
  • Research
  • Refereed limited

Conference

SIGCOMM '17
Sponsor:
SIGCOMM '17: ACM SIGCOMM 2017 Conference
August 21 - 25, 2017
CA, Los Angeles, USA

Acceptance Rates

Overall Acceptance Rate 462 of 3,389 submissions, 14%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)220
  • Downloads (Last 6 weeks)40
Reflects downloads up to 27 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2024)SmartDIMM: In-Memory Acceleration of Upper Layer Protocols2024 IEEE International Symposium on High-Performance Computer Architecture (HPCA)10.1109/HPCA57654.2024.00032(312-329)Online publication date: 2-Mar-2024
  • (2024)Modeling and Evaluating a Cache System in ICN Routers Using a Programmable Switch and ComputersIEEE Access10.1109/ACCESS.2024.348458812(154426-154442)Online publication date: 2024
  • (2022)Efficient and scalable core multiplexing with M³vProceedings of the 27th ACM International Conference on Architectural Support for Programming Languages and Operating Systems10.1145/3503222.3507741(452-466)Online publication date: 28-Feb-2022
  • (2022)The benefits of general-purpose on-NIC memoryProceedings of the 27th ACM International Conference on Architectural Support for Programming Languages and Operating Systems10.1145/3503222.3507711(1130-1147)Online publication date: 28-Feb-2022
  • (2021)Towards user-defined SLA in cloud flash storageProceedings of the 12th ACM SIGOPS Asia-Pacific Workshop on Systems10.1145/3476886.3477509(1-8)Online publication date: 24-Aug-2021
  • (2021)Autonomous NIC offloadsProceedings of the 26th ACM International Conference on Architectural Support for Programming Languages and Operating Systems10.1145/3445814.3446732(18-35)Online publication date: 19-Apr-2021
  • (2020)Data Direct I/O Characterization for Future I/O System Exploration2020 IEEE International Symposium on Performance Analysis of Systems and Software (ISPASS)10.1109/ISPASS48437.2020.00031(160-169)Online publication date: Aug-2020
  • (2020)MUST, SHOULD, DON’T CARE: TCP Conformance in the WildPassive and Active Measurement10.1007/978-3-030-44081-7_8(122-138)Online publication date: 18-Mar-2020
  • (2019)An initial evaluation of 6Stor, a dynamically scalable IPv6-centric distributed object storage systemCluster Computing10.1007/s10586-018-02897-8Online publication date: 5-Jan-2019
  • (2018)PASTEProceedings of the 15th USENIX Conference on Networked Systems Design and Implementation10.5555/3307441.3307444(17-33)Online publication date: 9-Apr-2018
  • Show More Cited By

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media