Disk Prefetching Mechanisms for Increasing HTTP Streaming Video Server Throughput

Benjamin Cassell, Tyler Szepesi, Jim Summers, Tim Brecht, D. Eager, B. Wong
{"title":"Disk Prefetching Mechanisms for Increasing HTTP Streaming Video Server Throughput","authors":"Benjamin Cassell, Tyler Szepesi, Jim Summers, Tim Brecht, D. Eager, B. Wong","doi":"10.1145/3164536","DOIUrl":null,"url":null,"abstract":"Most video streaming traffic is delivered over HTTP using standard web servers. While traditional web server workloads consist of requests that are primarily for small files that can be serviced from the file system cache, HTTP video streaming workloads often service a long tail of large infrequently requested videos. As a result, optimizing disk accesses is critical to obtaining good server throughput. In this article we explore serialized, aggressive disk prefetching, a technique that can be used to improve the throughput of HTTP streaming video web servers. We identify how serialization and aggressive prefetching affect performance, and, based on our findings, we construct and evaluate Libception, an application-level shim library that implements both techniques. By dynamically linking against Libception at runtime, applications are able to transparently obtain benefits from serialization and aggressive prefetching without needing to change their source code. In contrast to other approaches that modify applications, make kernel changes, or attempt to optimize kernel tuning, Libception provides a portable and relatively simple system in which techniques for optimizing I/O in HTTP video streaming servers can be implemented and evaluated. We empirically evaluate the efficacy of serialization and aggressive prefetching both with and without Libception, using three web servers (Apache, nginx, and the userver) running on two operating systems (FreeBSD and Linux). We find that, by using Libception, we can improve streaming throughput for all three web servers by at least a factor of 2 on FreeBSD and a factor of 2.5 on Linux. Additionally, we find that with significant tuning of Linux kernel parameters, we can achieve similar performance to Libception by globally modifying Linux’s disk prefetch behaviour. Finally, we demonstrate Libception’s ability to reduce the completion time of a microbenchmark involving two applications competing for disk resources.","PeriodicalId":105474,"journal":{"name":"ACM Transactions on Modeling and Performance Evaluation of Computing Systems (TOMPECS)","volume":"601 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2018-03-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"6","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"ACM Transactions on Modeling and Performance Evaluation of Computing Systems (TOMPECS)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/3164536","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 6

Abstract

Most video streaming traffic is delivered over HTTP using standard web servers. While traditional web server workloads consist of requests that are primarily for small files that can be serviced from the file system cache, HTTP video streaming workloads often service a long tail of large infrequently requested videos. As a result, optimizing disk accesses is critical to obtaining good server throughput. In this article we explore serialized, aggressive disk prefetching, a technique that can be used to improve the throughput of HTTP streaming video web servers. We identify how serialization and aggressive prefetching affect performance, and, based on our findings, we construct and evaluate Libception, an application-level shim library that implements both techniques. By dynamically linking against Libception at runtime, applications are able to transparently obtain benefits from serialization and aggressive prefetching without needing to change their source code. In contrast to other approaches that modify applications, make kernel changes, or attempt to optimize kernel tuning, Libception provides a portable and relatively simple system in which techniques for optimizing I/O in HTTP video streaming servers can be implemented and evaluated. We empirically evaluate the efficacy of serialization and aggressive prefetching both with and without Libception, using three web servers (Apache, nginx, and the userver) running on two operating systems (FreeBSD and Linux). We find that, by using Libception, we can improve streaming throughput for all three web servers by at least a factor of 2 on FreeBSD and a factor of 2.5 on Linux. Additionally, we find that with significant tuning of Linux kernel parameters, we can achieve similar performance to Libception by globally modifying Linux’s disk prefetch behaviour. Finally, we demonstrate Libception’s ability to reduce the completion time of a microbenchmark involving two applications competing for disk resources.
提高HTTP流视频服务器吞吐量的磁盘预取机制
大多数视频流流量是使用标准web服务器通过HTTP传输的。虽然传统的web服务器工作负载主要由可以从文件系统缓存中提供服务的小文件的请求组成,但HTTP视频流工作负载通常服务于不经常请求的大型视频的长尾。因此,优化磁盘访问对于获得良好的服务器吞吐量至关重要。在本文中,我们将探讨序列化的、主动的磁盘预取,这是一种可用于提高HTTP流视频web服务器吞吐量的技术。我们确定了序列化和主动预取如何影响性能,并且根据我们的发现,我们构建并评估了libeption,这是一个实现了这两种技术的应用程序级内存库。通过在运行时动态链接libeption,应用程序可以透明地从序列化和主动预取中获益,而无需更改源代码。与修改应用程序、更改内核或尝试优化内核调优的其他方法不同,Libception提供了一个可移植且相对简单的系统,可以在其中实现和评估用于优化HTTP视频流服务器中的I/O的技术。我们使用运行在两个操作系统(FreeBSD和Linux)上的三个web服务器(Apache、nginx和userver),在使用和不使用Libception的情况下,对序列化和主动预取的有效性进行了实证评估。我们发现,通过使用libeption,我们可以将所有三个web服务器的流吞吐量在FreeBSD上至少提高2倍,在Linux上提高2.5倍。此外,我们发现,通过对Linux内核参数进行重大调优,我们可以通过全局修改Linux的磁盘预取行为来实现与Libception相似的性能。最后,我们将演示libeption减少涉及两个应用程序争夺磁盘资源的微基准测试的完成时间的能力。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:604180095
Book学术官方微信
小红书