CN102123318A - 一种iptv应用的io加速方法 - Google Patents
一种iptv应用的io加速方法 Download PDFInfo
- Publication number
- CN102123318A CN102123318A CN2010106115000A CN201010611500A CN102123318A CN 102123318 A CN102123318 A CN 102123318A CN 2010106115000 A CN2010106115000 A CN 2010106115000A CN 201010611500 A CN201010611500 A CN 201010611500A CN 102123318 A CN102123318 A CN 102123318A
- Authority
- CN
- China
- Prior art keywords
- ahead
- prefetch
- looking ahead
- client
- request
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明提供了一种IPTV应用的IO加速方法,增加了预取缓存层,服务器检测磁盘IO性能及客户端访问的IO压力;服务器根据到的检测磁盘IO性能及客户端访问的IO压力,确定预取策略,预取策略可以为保守式预取、贪婪式预取和满足式预取;本发明中所提出的缓存和预取模块直接位于存储设备之上,因此在此所作的各种排序或合并操作都直接作用于具体的存储设备,不再有其它中间层。所以,各种策略的优势都可以充分发挥,而不再会被其它层所干扰,有效提高了磁盘的存储性能。
Description
技术领域
本发明涉及存储系统性能优化领域,具体涉及一种通过对IPTV应用的IO模式分析,采用聚合和预取的策略来加速IPTV应用的IO性能的方法。
背景技术
随着互联网技术的快速发展,基于网络的视频服务(IPTV)也逐渐成为学术界和工业界的焦点。目前常见的IPTV应用包括在线直播(Live Stream)和在线点播(Video On Demand)等,并且一些新兴的IPTV应用如时移在线直播(TimeShift Live Stream)也开始出现。
IPTV应用具有高并发和实时两大需求。高并发指的是对于同一服务器来说,需要同时提供上千个终端用户的访问能力,每个终端用户可以访问相同或不同的视频文件。而实时则是用户端看到的视频文件必须是连续的,因此服务器端需要在固定的时间阈值内,完成接到客户端的IO请求并给出相应的数据。
IPTV应用中客户端收到请求后将数据请求发送给服务器端,服务器端从存储设备上读取数据并通过网络返回到客户端,最终客户端对请求后的数据进行解码并显示。可以看出,整个过程中计算密集的解码部分主要在客户端,而服务器端则是IO密集的,因此提高服务器端的IO能力是IPTV应用的核心。
服务器端IO能力受限主要受制于两个方面的原因:首先是IPTV应用的模式在服务器端的计算和IO比例失衡,在计算能力富余的情况下,系统负载会逐渐加压到服务器端的IO上,直到IO成为瓶颈为止,而此时计算能力尚有大量富余。另一方面,IPTV应用中,虽然每个每个客户端的请求都是顺序的,但多个顺序的请求到了服务器端后会交织在一起,而这些请求来自不同文件的不同位置,从而导致了对整个磁盘的访问呈现出无序的状态。而目前IPTV应用中,由于视频文件数据量较大,而传统的温切斯特磁盘具有容量大价格低的特点,所以在IPTV应用中广为使用。但温切斯特磁盘由于磁臂是机械装置,所以对于这种无序的访问效率非常低。
为了解决上述问题,一些优化方案也逐渐被提出。常见的包括两种:
多个单盘模式:由于服务器端数据量庞大,因此所需的磁盘空间也较大,相应的磁盘个数较多。这种情况下,这些磁盘有两种组织方式。一种是将多个磁盘通过RAID等机制组织成为单盘,这种方法的优点是整个存储空间被共享,方便服务器端的负载分配和平衡。缺点是由于每个文件都被分布在多个磁盘上,因此每个文件的访问需要访问多个磁盘,导致了并发模式下性能下降。而且,这种模式下,RAID卡自身也很容易成为系统的性能瓶颈,系统扩展性有限;另一种组织方式则是将多个磁盘组织成单盘模式。在文件数目足够多的情况下,可以近似将这些文件的分布认为是一种均匀分布。这种情况下,将多个文件均匀的放置在不同的磁盘上,负载也是近乎均匀的。这种情况下,访问每个文件只涉及单块磁盘,因此高并发模式下系统性能较高。而且由于没有RAID卡的单点瓶颈,系统的可扩展性也大为提高。
客户端或服务器端用户态预取:由于每个客户端的访问以顺序模式为主,因此可以将每个客户端到来的小的请求扩展为大粒度的请求,使得每次请求时都以较大粒度来访问磁盘。由于磁盘在大粒度访问时,访问模式对性能影响并不明显,因此这种方式也可以带来系统性能的提升。但这种模式仍未将磁盘系统性能发挥至最优。因为即使是在服务器端用户态的大粒度访问,到了Linux操作系统内部,也会被划分为一个个小的基本IO请求(bio),而Linux系统中IO调度层会对所有的基本IO请求做统一的接收和处理,这样将会导致一个大粒度的访问仍被打破成为小粒度的访问。
发明内容
本发明中针对IPTV应用的IO模式特征,提出了一种在服务器端内核态做缓存和预取的方法,可以将磁盘的性能充分发挥。
一种IPTV应用的IO加速方法,增加了预取缓存层,
加速方法如下:
A、服务器检测磁盘IO性能及客户端访问的IO压力;
B、服务器根据到的检测磁盘IO性能及客户端访问的IO压力,确定预取策略,预取策略可以为保守式预取、贪婪式预取和满足式预取;
其中,所述保守式预取即每次预取固定数量的缓冲区,客户端访问如果命中,则将缓冲区指针向前推进;如果缓冲区指针已经到达本次预取数据的尾部,则开始进行下一个缓冲区的预取;
所述贪婪式预取即预取线程自动探测系统的IO负载,只要IO负载没有达到最大压力,则对现有的各个客户端继续做预取,直到系统缓冲区用完或者IO负载无法再容忍更大的压力为止;
所述满足式预取即预取线程实时统计并计算每个客户端请求的到达时间间隔,并以此来估算当前缓冲区中剩余缓冲可以支撑的请求时间,同时,预取线程还需要统计并计算当前IO请求的返回延迟,根据目前缓冲区的请求支撑时间和IO的返回延迟关系,可以做如下决策:如果支撑时间小于等于预取返回延迟,说明当前发出的预取请求都已经无法满足未来的需求,此时需要及时的发出预取请求;如果支撑时间大于预取返回延迟,则说明目前的预取请求商不需要发出。
本发明的一种优选技术方案在于:预取缓存层可以借助Linux中的DeviceMapper层以模块化的方式实现;当启用该模块时对存储设备透明加速,当不启用该模块时存储设备正常工作。
本发明的另一种优选技术方案在于:预取缓存层可以来自于系统的标准内存,也可来自于高速存储设备;后端存储设备可以为单块磁盘,也可以为盘阵系统。
本发明中所提出的缓存和预取模块直接位于存储设备之上,因此在此所作的各种排序或合并操作都直接作用于具体的存储设备,不再有其它中间层。所以,各种策略的优势都可以充分发挥,而不再会被其它层所干扰,有效提高了磁盘的存储性能。
附图说明
图1为IPTV预取系统框架
图2为预取排序前IO模式
图3为预取排序后IO模式
图4为预取模块在Linux中的实现
具体实施方式
图1给出了IPTV系统预取框架示意图。其中a给出了传统的IPTV架构,b给出了预取模式下的系统框架图。主要是在Linux操作系统中的IO调度层之下和存储设备驱动之上,给出了一个新的缓存预取层,来对所有的IO请求做预取和缓存工作。
由于本发明中所提出的缓存和预取模块直接位于存储设备之上,因此在此所作的各种排序或合并操作都直接作用于具体的存储设备,不再有其它中间层。所以,各种策略的优势都可以充分发挥,而不再会被其它层所干扰。
具体来讲,预取缓存层主要是区分各个客户端的请求,并对每个客户端的请求做IO模式分析和预测,从而对该客户端未来即将访问的数据做预测,并事先存储在缓冲区中。如图2所示,IPTV中每个客户端的请求连续性较大,但一个个连续的请求到了磁盘系统之后由于交织导致了磁盘最终访问的不连续性。经过处理后的请求如图3所示,同一客户端的访问以较大粒度聚合在一起,从而使得磁盘的顺序访问性能得以发挥。
这种方式下,不仅可以对每个客户端已经发出的请求做排序。由于区分不同客户端请求后,每个客户端的访问模式非常清晰,因此可以方便的根据每个客户端的访问模式给出预取请求,从而将每个客户端即将访问的数据也提早读进缓存中。
该机制在Linux内核中的实现如图4所示。预取模块位于Linux中块设备层之下和存储设备层之上。预取的数据直接从磁盘放入预取缓冲区中,后续如果缓冲区命中,则直接从缓冲区中返回。否则,绕过缓冲区,直接从磁盘上读取。
借助于Linux中的Device Mapper层,该机制可以以模块的方式来实现,即不用对用户程序和操作系统做任何的修改。更进一步,将Device Mapper中的虚拟设备和后端存储设备的大小、起止地址等参数设为相同,则可以将该预取模块做成透明模式。也就是说,这种实现方式下,如果安装预取模块,则对目前存储设备的访问被透明的加速。如果不安装该模块,存储设备仍像正常存储设备一样工作,使得一块存储设备可以同时用于IPTV类服务或其它服务。
该机制中的预取缓冲区可以来自于系统的标准内存,也可以来自于目前常见的一些高速存储设备,比如SSD或基于PCIe接口的FLASH存储卡等。而后端存储,可以是单块磁盘,也可以是盘阵系统。但为了充分发挥整个系统的性能,要求缓存系统的性能要明显高于后端存储设备的性能,具体来讲,包括两个方面:
首先,缓存设备的随机小粒度访问性能要明显高于后端存储。这样在后端存储上表现低效的小粒度无序访问,如果在缓存设备上命中,就可以提高系统的IO性能。
其次,缓存系统的大粒度访问性能不低于后端存储。因为只有这样,才可以确保从后端存储中取得的数据都能及时放入缓存设备中。
根据磁盘的IO性能和客户端访问的IO压力,具体实现中的预取策略可以分为以下三种:
1、保守式预取。即每次预取固定数量的缓冲区,客户端访问如果命中,则将缓冲区指针向前推进。如果缓冲区指针已经到达本次预取数据的尾部,则开始进行下一个缓冲区的预取。
2、贪婪式预取。这种模式下,预取线程自动探测系统的IO负载。只要IO负载没有达到最大压力,则对现有的各个客户端继续做预取,知道系统缓冲区用完或者IO负载无法再容忍更大的压力为止。
3、满足式预取。这种模式下,预取线程实时统计并计算每个客户端请求的到达时间间隔。并以此来估算当前缓冲区中剩余缓冲可以支撑的请求时间。同时,预取线程还需要统计并计算当前IO请求的返回延迟。根据目前缓冲区的请求支撑时间和IO的返回延迟关系,可以做如下决策:如果支撑时间小于等于预取返回延迟,说明当前发出的预取请求都已经无法满足未来的需求,此时需要及时的发出预取请求;如果支撑时间大于预取返回延迟,则说明目前的预取请求商不需要发出。
以上三种方式中,保守式预取所需要的缓冲区数量最小,但由于是每次缓冲区耗尽后才做下一次预取,因此存在预取不及时的缺点。贪婪式预取则相反,最大限度的做了预取,因此可以及时的满足客户端的需求。但缺点是占用的缓冲区数量最大。如果期间客户端发生了视频切换或视频拖曳,则预取就会失效,失效开销较大。满足式预取则兼具上述两者优点,同时具有及时性和所占用的缓冲区最小的特点。但实现满足式预取,需要对当前缓冲区的支撑时间和系统当前的IO返回延迟做精确的判断,实现复杂度较高。
所以,根据服务器端的配置情况和IO请求的特征,实现方式的选择标准如下:
服务器端缓冲区数据较少,CPU较忙,则采用保守式预取。
服务器端缓冲区数据较多,CPU较忙,则采用贪婪式预取。
服务器端CPU较空闲,则采用满足式预取。
Claims (3)
1.一种IPTV应用的IO加速方法,其特征在于:增加了预取缓存层,
加速方法如下:
A、服务器检测磁盘IO性能及客户端访问的IO压力;
B、服务器根据到的检测磁盘IO性能及客户端访问的IO压力,确定预取策略,预取策略可以为保守式预取、贪婪式预取和满足式预取;
其中,所述保守式预取即每次预取固定数量的缓冲区,客户端访问如果命中,则将缓冲区指针向前推进;如果缓冲区指针已经到达本次预取数据的尾部,则开始进行下一个缓冲区的预取;
所述贪婪式预取即预取线程自动探测系统的IO负载,只要IO负载没有达到最大压力,则对现有的各个客户端继续做预取,直到系统缓冲区用完或者IO负载无法再容忍更大的压力为止;
所述满足式预取即预取线程实时统计并计算每个客户端请求的到达时间间隔,并以此来估算当前缓冲区中剩余缓冲可以支撑的请求时间,同时,预取线程还需要统计并计算当前IO请求的返回延迟,根据目前缓冲区的请求支撑时间和IO的返回延迟关系,可以做如下决策:如果支撑时间小于等于预取返回延迟,说明当前发出的预取请求都已经无法满足未来的需求,此时需要及时的发出预取请求;如果支撑时间大于预取返回延迟,则说明目前的预取请求商不需要发出。
2.如权利要求1所述一种IPTV应用的IO加速方法,其特征在于:预取缓存层可以借助Linux中的Device Mapper层以模块化的方式实现;当启用该模块时对存储设备透明加速,当不启用该模块时存储设备正常工作。
3.如权利要求1所述一种IPTV应用的IO加速方法,其特征在于:预取缓存层可以来自于系统的标准内存,也可来自于高速存储设备;后端存储设备可以为7单块磁盘,也可以为盘阵系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010611500.0A CN102123318B (zh) | 2010-12-17 | 2010-12-17 | 一种iptv应用的io加速方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010611500.0A CN102123318B (zh) | 2010-12-17 | 2010-12-17 | 一种iptv应用的io加速方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102123318A true CN102123318A (zh) | 2011-07-13 |
CN102123318B CN102123318B (zh) | 2014-04-23 |
Family
ID=44251737
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010611500.0A Active CN102123318B (zh) | 2010-12-17 | 2010-12-17 | 一种iptv应用的io加速方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102123318B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102904923A (zh) * | 2012-06-21 | 2013-01-30 | 华数传媒网络有限公司 | 一种缓解磁盘读取瓶颈的数据读取的方法及系统 |
CN106293792A (zh) * | 2015-06-02 | 2017-01-04 | 腾讯科技(深圳)有限公司 | 软件启动方法和装置 |
CN108920106A (zh) * | 2015-01-28 | 2018-11-30 | 北京知投家知识产权运营有限公司 | 一种闪存存储阵列的实现方法 |
CN116700604A (zh) * | 2023-02-20 | 2023-09-05 | 无锡众星微系统技术有限公司 | 一种基于sas hba的数据传输方法 |
WO2023226505A1 (zh) * | 2022-05-23 | 2023-11-30 | 华为技术有限公司 | 一种预取调度方法及预取调度器 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101026744A (zh) * | 2007-03-30 | 2007-08-29 | Ut斯达康通讯有限公司 | 分布式流媒体分发系统及流媒体内存缓冲及调度分发方法 |
CN101030903A (zh) * | 2006-03-03 | 2007-09-05 | 南京艾迪恩斯数字技术有限公司 | 网络视频监控接入交换系统 |
WO2009073795A1 (en) * | 2007-12-05 | 2009-06-11 | Onlive, Inc. | System for combining a plurality of views of real-time streaming interactive video |
-
2010
- 2010-12-17 CN CN201010611500.0A patent/CN102123318B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101030903A (zh) * | 2006-03-03 | 2007-09-05 | 南京艾迪恩斯数字技术有限公司 | 网络视频监控接入交换系统 |
CN101026744A (zh) * | 2007-03-30 | 2007-08-29 | Ut斯达康通讯有限公司 | 分布式流媒体分发系统及流媒体内存缓冲及调度分发方法 |
WO2009073795A1 (en) * | 2007-12-05 | 2009-06-11 | Onlive, Inc. | System for combining a plurality of views of real-time streaming interactive video |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102904923A (zh) * | 2012-06-21 | 2013-01-30 | 华数传媒网络有限公司 | 一种缓解磁盘读取瓶颈的数据读取的方法及系统 |
CN102904923B (zh) * | 2012-06-21 | 2016-01-06 | 华数传媒网络有限公司 | 一种缓解磁盘读取瓶颈的数据读取的方法及系统 |
CN108920106A (zh) * | 2015-01-28 | 2018-11-30 | 北京知投家知识产权运营有限公司 | 一种闪存存储阵列的实现方法 |
CN106293792A (zh) * | 2015-06-02 | 2017-01-04 | 腾讯科技(深圳)有限公司 | 软件启动方法和装置 |
US10747550B2 (en) | 2015-06-02 | 2020-08-18 | Tencent Technology (Shenzhen) Company Limited | Method, terminal and storage medium for starting software |
WO2023226505A1 (zh) * | 2022-05-23 | 2023-11-30 | 华为技术有限公司 | 一种预取调度方法及预取调度器 |
CN116700604A (zh) * | 2023-02-20 | 2023-09-05 | 无锡众星微系统技术有限公司 | 一种基于sas hba的数据传输方法 |
CN116700604B (zh) * | 2023-02-20 | 2023-11-14 | 无锡众星微系统技术有限公司 | 一种基于sas hba的数据传输方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102123318B (zh) | 2014-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9229653B2 (en) | Write spike performance enhancement in hybrid storage systems | |
CN101038532B (zh) | 数据存储装置及其方法 | |
US9690705B1 (en) | Systems and methods for processing data sets according to an instructed order | |
US11188262B2 (en) | Memory system including a nonvolatile memory and a volatile memory, and processing method using the memory system | |
CN104765575B (zh) | 信息存储处理方法 | |
CN102023931B (zh) | 一种自适应缓存预取方法 | |
US20150127691A1 (en) | Efficient implementations for mapreduce systems | |
CN102831088A (zh) | 基于混合存储器的数据迁移方法和装置 | |
US20140006687A1 (en) | Data Cache Apparatus, Data Storage System and Method | |
CN102609360A (zh) | 一种数据处理方法、装置及系统 | |
CN102123318B (zh) | 一种iptv应用的io加速方法 | |
CN102117248A (zh) | 一种缓存系统和在缓存系统中缓存数据的方法 | |
CN105138292A (zh) | 磁盘数据读取方法 | |
CN108459826A (zh) | 一种处理io请求的方法及装置 | |
CN106066890B (zh) | 一种分布式高性能数据库一体机系统 | |
US20190004968A1 (en) | Cache management method, storage system and computer program product | |
CN103795781A (zh) | 一种基于文件预测的分布式缓存模型 | |
CN102262512A (zh) | 一种实现磁盘阵列缓存分区管理的系统、装置及方法 | |
CN102637147A (zh) | 利用固态硬盘作为计算机写缓存的存储系统以及相应的管理调度方法 | |
CN104765574A (zh) | 数据云端存储方法 | |
CN106681660B (zh) | Io调度方法及io调度装置 | |
CN115543938A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
US9639473B1 (en) | Utilizing a cache mechanism by copying a data set from a cache-disabled memory location to a cache-enabled memory location | |
CN101853218B (zh) | 用于磁盘阵列的读取方法和系统 | |
CN102063264B (zh) | 一种处理数据的方法、设备及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220729 Address after: 100193 No. 36 Building, No. 8 Hospital, Wangxi Road, Haidian District, Beijing Patentee after: Dawning Information Industry (Beijing) Co.,Ltd. Patentee after: DAWNING INFORMATION INDUSTRY Co.,Ltd. Address before: 100084 Beijing Haidian District City Mill Street No. 64 Patentee before: Dawning Information Industry (Beijing) Co.,Ltd. |
|
TR01 | Transfer of patent right |