CN1624669A - 一种用于提高文件服务器磁盘读取速率的方法 - Google Patents

一种用于提高文件服务器磁盘读取速率的方法 Download PDF

Info

Publication number
CN1624669A
CN1624669A CN 200310112392 CN200310112392A CN1624669A CN 1624669 A CN1624669 A CN 1624669A CN 200310112392 CN200310112392 CN 200310112392 CN 200310112392 A CN200310112392 A CN 200310112392A CN 1624669 A CN1624669 A CN 1624669A
Authority
CN
China
Prior art keywords
file
disk
access
server
speed
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.)
Pending
Application number
CN 200310112392
Other languages
English (en)
Inventor
陈凯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to CN 200310112392 priority Critical patent/CN1624669A/zh
Publication of CN1624669A publication Critical patent/CN1624669A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明基于软件实现,主要是公开了一种用于提高文件服务器磁盘读取速率的方法。它们可以在多用户访问文件服务器上面的大数据文件时大幅度提高磁盘的读取速率,此提高幅度随被访问文件字节数的增加而增加,一般对于1兆以上的文件就有明显的效果,当数据文件为几十兆或以上的视频文件时磁盘传输速率可达到其物理传输速率的90%以上,并且随着用户数的增加没有明显的下降。文件服务器上使用本方法在客户端访问超过1兆的文件时可以大幅度提高系统读取速率,最大可以达到现在普通方法的800%,即使用一台服务器就可达到现有方法使用多台服务器达到的效果,直接减少硬件投资,实践中便于推广,且本方法适用于所有操作系统。

Description

一种用于提高文件服务器磁盘读取速率的方法
技术领域
本发明专利基于软件实现,主要是一种用于提高文件服务器磁盘读取速率的方法。
技术背景
文件服务器是一般网络系统的核心,多个客户设备可以共享访问该服务器上的文件资源。随着网络宽带的1飞速增长,磁盘读取的速率瓶颈越来越明显,特别是在需要实时的环境下更加突出,现在比较常用的解决方法是采用多块SCSI磁盘组成RAID和组成服务器群。VOD视频点播系统是近年来的热门,广泛应用于校园卡拉OK、宾馆。当前普通技术基于文件重定向或直接文件路径访问的  基本上都是每台使用4块以上IDE硬盘的服务器稳定支持20个DVD客户端实际输出速率为100兆位/每秒,单块IDE硬盘的服务器稳定支持8个DVD客户端实际输出速率为40兆位/每秒,使用SCSI硬盘的服务器支持60个DVD客户端实际输出速率为300兆位/每秒。超过该用户数文件服务器无法及时传输数据给客户端,客户端播放经常停顿,无法连续播放。当客户数较多时靠机械的增加服务器数量来满足需求,或者采用码流小的视频文件如MPEG4等。例如200点并发的系统需要10台使用IDE硬盘的视频服务器,加上冗余大概要14台服务器。当前普通技术的服务器内增加硬盘数,CPU,内存,网卡对性能无明显改善,采用单个硬盘和组成RAID无明显差别。
经过比较权威的WINBENCH99,HD Tach等软件测试,单块IDE普通硬盘的读取速率一般可以达到160~320兆位/每秒,高速IDE硬盘可以达到280~440兆位/每秒,高速SCSI硬盘与高速IDE硬盘读取速率差别不大。一个DVD的点播为4兆位/每秒~7兆位/每秒,照理单块硬盘就可以轻松支持几十个点的并发点播,为什么实际上却做不到。为什么IDE和SCSI硬盘读取速率差别不大,实际支持用户数却差别那么大呢?原来它们的寻道时间有很大的差别,IDE硬盘一般在10毫秒左右,SCSI硬盘在4毫秒左右,最快的可以达到2毫秒,另外SCSI控制器的智能化程度比较高,是面向多用户的,而IDE控制器主要受CPU控制,智能化程度很低,是面向单用户的。
现在我们使用的操作系统对硬件进行很好的封装,硬件设备对应用软件来说是完全透明的,我们只能告诉操作系统我们要做什么而具体怎么做什么时候做完全是操作系统的事情,应用程序常常无法干预。这对于普通的是应用非常方便,但对于需要实时的应用场合,这就带来非常无法预料的结果或者需要牺牲相应的性能指标。
当前普通技术基于文件重定向或文件路径访问都是直接使用操作系统提供的服务,也有些服务器端软件虽然没有直接采用文件重定向或文件路径访问但还是采用系统调用,经实际应用测试效率也没什么明显提高。它们在互连网上做文件服务器由于受网络带宽限制,磁盘I/O方面没明显的不足,但在网络带宽不受限制的局域网上就无法提供足够的访问数据。
发明内容
本发明专利提供了一种经过具体实施和全面验证的方法,它们可以在多用户访问文件服务器上面的大数据文件时大幅度提高磁盘的读取速率,此提高幅度随被访问文件字节数的增加而增加,一般对于1兆以上的文件就有明显的效果,当数据文件为几十兆或以上的视频文件时磁盘传输速率可达到其物理传输速率的90%以上,并且随着用户数的增加没有明显的下降。
本发明基于软件实现,在基本上不增加硬件成本的基础上可以大幅度提高文件服务器磁盘系统读取性能,特别是对于转速较低的IDE磁盘,可达到300%至800%。本发明的方法适用于存储大文件(1兆字节以上)的服务器如存储视频文件的视频服务器存储图书资料的服务器等。本方法对于小于100k的文件不适用。本发明用3个不同档次的视频点播系统作为研究对象,得到相应实验的数据,修改参数方案,最终得到本方法。
读取提速手段1:根据文件的大小让系统对每个文件请求每次尽量读多一点数据,将寻道时间占的比例尽可能缩小。对于几十兆的文件可以定义每次读1M或2M,按当前IDE磁盘的传输速率50兆/每秒,平均寻道时间10毫秒算,实际读速率与连续传输率的比率分别为:
1兆/(50兆/秒)=20毫秒,20/(20+10)=66%。
2兆/(50兆/秒)=40毫秒,40/(40+10)=80%。
这样做的开销是需要占用一些内存。比如说服务器有200个访问,每个访问占2兆内存则需要400兆的内存,作为服务器配备1~2G的内存是很正常的事情,这样的开销对文件服务器来说是在很正常的范围内。
读取提速手段2:操作系统有几种的磁盘调度方法,其内部具体使用哪种方法我们无法得到,经实际测试发现在大文件读取时效果不好。由于我们可以保证磁盘上的数据文件是连续存放的,我们需要绕过操作系统的磁盘调度,直接从文件分配表中得到文件在磁盘上存放的扇区号,将待读文件按其在磁盘上存放的扇区号大小排序,这样可以最大限度的减少寻道距离,从而减少寻道时间。提高磁盘的读取速率。
读取提速手段3:对于多个用户访问同一个文件的情况,我们需要用到文件缓存机制,这种机制在操作系统里面被普遍采用,但操作系统的设计主要针对小文件的缓存比较有效,当文件很大时,比如视频文件100MB以上时不但效果不好对系统还有一定的影响,我们使用直接扇区访问(汇编实现,驱动级)的方法,绕开操作系统对我们的磁盘访问的缓冲,我们的方法设定一个临界访问数,当实际访问数小于临界访问数时,直接读硬盘上的数据,当达到临界访问数时,将整个文件读入内存,以后对该文件的所有访问直接从内存得到而无需访问硬盘。这种方法绕开操作系统的缓存机制,完全根据客户端访问来启动和关闭内存文件映射块,在视频服务器上提速效果非常明显,因为视频服务器上的文件是节目,每当有新的节目时往往都是点播率非常高的,这时数据在内存里面就不存在磁盘I/O速率高低的问题,只要网络有足够的带宽就可以提供点播服务。
读取提速手段4:根据当前每个磁盘的物理传输速率设定一个最大可服务速率,限制对每个磁盘的连接数使时间实际读取速率小于最大可服务速率。比如该磁盘设定的最大连接速率为40兆字节每秒,当实际读取速率达到该数值时禁止对该磁盘新的访问连接,保证已有每个连接能在其最低速率以上,保证已有连接正常工作不受影响。
本发明专利的有益效果在于,文件服务器上使用本方法在客户端访问超过1兆的文件时可以大幅度提高系统读取速率,最大可以达到现在普通方法的800%,即使用一台低配置的普通服务器就可达到现有方法使用多台服务器达到的效果,直接减少硬件投资,实践中便于推广,且本方法适用于所有操作系统。
具体实施方式
视频点播系统由文件服务器,网络和点播客户端及相应的软件组成,本发明使用了3种档次的文件服务器来实现本发明的方法,这3种文件服务器占市场的绝大多数应用领域,可以充分验证本方法的实用性:
服务器1:普通奔腾4兼容机做服务器,内存为2G,2块TP-LINK千兆网卡。
服务器2:双奔腾4至强部门级服务器,内存为4G,2块INTEL千兆网卡。
服务器3:4路奔腾4至强企业级服务器,内存为8G,3块INTEL千兆网卡。
以上3种服务器均采用8块西捷酷鱼120GIDE硬盘,每2块磁盘组成RAID0,共有4组磁盘。
该方法在视频服务器上的实现由以下几部分模块组成:
模块1:网络收发模块。负责接收客户端的请求和将数据发送给客户端。
模块2:文件读取模块。负责将磁盘子系统里面的数据读到内存。
模块3:控制模块。负责模块1和模块2之间的协调工作。
启动服务器软件后,模块1监听指定的端口,接收到客户端的请求并正确解释请求后通知模块3,模块3判断当前系统内磁盘读数据的状态和网络的状态,确定可以提供服务时通知模块2,模块2开始将数据从磁盘上读出交给模块1发送。如果确定当前不可以提供服务,通知模块1发送无法提供服务信息给客户端,保证已经建立好的服务连接不会因为新的连接加入而受到影响。
服务器磁盘子系统一般由磁盘,控制器组成。本发明的方法是基于软件实现,就是说在现有的硬件基础上通过软件提高效率来实现,本发明不涉及硬件改造等方法。
影响磁盘I/O性能的物理因素为磁盘内部传输速率,磁盘外部传输速率,寻道时间,控制器接口速率,系统I/O速率,延迟时间等。我们把现在PC系统主流硬件的相关性能列(表1)。
普通的文件服务器不需具有实时性,系统I/O速率大小虽然也是很重要的性能指标但却没有必要的最小值。比如说在100兆位/每秒  的局域网里拷贝一个10兆字节的文件一般是只需要几秒钟,而用56K MODEM访问就要30分钟以上,虽然说前者比后者好,但都可以实现,现实中就是这样的。视频点播具有实时性,用56K MODEM网络连接做MPEG2的点播大概每播放1秒的数据需要2分钟的传输,不具备实时性,是无法使用的。用视频点播做本发明方法的实现研究具有非常直接的结果。
本发明首先确保文件数据是保存在连续的扇区里面,本发明采用新的硬盘,依次将视频文件拷贝到新盘里面,文件一般在100兆字节到200兆字节之间,一个120G的硬盘可以储存900个文件,每个文件的内容都是一首歌曲。
按照众所周知的方法当只有一个用户访问文件服务器时,系统只对一个文件进行读操作。当有许多用户访问文件服务器时,系统要同时对许多文件进行读操作这个同时是指宏观的同时微观上磁盘,假设此时的访问数为50,系统对每个文件访问在不同的线程里执行的情况,系统将给每个线程分配15毫秒的时间,每个用户得到的时间片为片15ms,在这15ms里面寻道时间花掉了10毫秒,剩下的5毫秒进行读数据,就是说理论上最大效率只有33%,这种严格时间片方法主要在UNIX系统,windows系统是消息事件驱动,时间片更无序,效率更低。在已经公布的一种文件服务器方法中,将每次读文件的大小设定为2.5K*15=37.5k,按现在的IDE硬盘的读速率50M,需时37.5k/50000k/s=0.75毫秒。就是说系统花10毫秒寻道定位该文件后只需读0.75毫秒的数据就要进行下一次寻道操作,实际用在读数据的时间只占0.75/10.75=7%,也就是说效率只有百分之7,其余93%都用来寻道了。
磁盘数据的物理结构为:盘片,磁道,扇区。磁道为盘片上的许多同心圆,分为内道外道,靠近圆心的为内道,反之为外道。外道为起始磁道,周长比内道长,包含的扇区数比内道多,传输率高。
磁盘的访问时间包括寻道时间和延迟时间和传输时间,寻道时间是磁头移动到指定磁道的时间,其寻道时间随寻道距离的增大而增大。延迟时间是磁头移动到磁道后找到需要读数据的扇区的时间,一般7200转的硬盘每转一圈需时8.3,平均延迟时间为4毫秒。传输时间才是真正读取数据的时间,传输时间占访问时间的比例越高,磁盘传输率越大,其最大值为物理传输率,本发明的方法就是尽可能提高传输时间的比例从而提高访问速率。
在综合采用上面4种手段编写的服务器管理软件实现了文件服务器磁盘读取速率的本质的飞跃,采用单块西捷酷鱼IDE硬盘的文件服务器可以稳定支持80个DVD客户端的实时访问。采用8块硬盘组成IDE RAID0时,测试结果更是非常令人鼓舞:
服务器1(普通P4)能够支持150个DVD客户端的实时访问,播放中偶尔有1~5秒的停顿,稳定支持140DVD客户端的实时访问,中间无任何停顿。响应时间小于5秒。
服务器2(2 P4XEON)能够支持240个DVD客户端的实时访问,播放中偶尔有1~5秒的停顿,稳定支持220 DVD客户端的实时访问,中间无任何停顿。响应时间小于6秒。
服务器3(4 P4XEON)能够支持400个DVD客户端的实时访问,播放中偶尔有1~5秒的停顿,稳定支持360 DVD客户端的实时访问,中间无任何停顿。响应时间小于8秒。
具体测试数据见(表2)。
表1
速率 平均延时
普通IDE硬盘7200转 30~55兆字节/每秒 10毫秒
普通SCSI硬盘15000转 30~65兆字节/每秒 3毫秒
ATA 133控制器 133兆字节/每秒 0毫秒
SCSI 320控制器 320兆字节/每秒 0毫秒
SCSI 160控制器 160兆字节/每秒 0毫秒
PCI 32/33接口 133兆字节/每秒 0毫秒
PCI 32/66接口 266兆字节/每秒 0毫秒
PCI 64/66接口 512兆字节/每秒 0毫秒
系统板速率 普通奔腾4板 256兆字节/每秒 0毫秒
双至强服务器板 512兆字节/每秒 0毫秒
四路至强服务器板 1000兆字节/每秒 0毫秒
表2
服务器1 服务器2 服务器3
单块IDE硬盘
支持点数 80 80 80
I/O速率 45兆字节/每秒 45兆字节/每秒 45兆字节/每秒
Cpu占用率 20% 8% 5%
8块IDE硬盘做成RAID0
支持点数 140 220 360
I/O速率 80兆字节/每秒 130兆字节/每秒 210兆字节/每秒
Cpu占用率 60% 35% 20%

Claims (3)

1、一种用于提高文件服务器磁盘读取速率的方法,其特征是:
一、服务器端控制磁盘访问的方法:该方法由服务器软件控制每次磁盘访问的文件块大小,根据被访问文件的大小、系统内存大小和保证达到各个访问请求最低速率的情况下动态调整该文件块的大小,目标是在让寻道时间占访问时间的比例尽可能小,推荐值为2兆字节,不要低于500千字节;
二、服务器端控制磁盘访问的方法:不使用操作系统的磁盘调度,直接根据文件分配表得到文件在磁盘上的位置信息,根据该信息确定文件读取时的顺序,尽量减少寻道距离;
三、服务器端控制磁盘访问的方法:绕过操作系统的磁盘缓冲机制,达到预定请求数目的文件将其直接读入内存,系统根据对同一个文件的请求数确定直接磁盘读取还是内存读取。
2、根据权利要求1所述,其特征是设定最大访问速率,限制实际访问速率小于最大访问速率,禁止超过该速率的新的连接请求,保证已有的连接在正常工作。
3、根据权利要求1所述的一、二、三方法,其特征是对于磁盘I/O相关的操作不使用操作系统提供的函数或其它调用,通过驱动或其它方式直接控制磁盘系统。
CN 200310112392 2003-12-02 2003-12-02 一种用于提高文件服务器磁盘读取速率的方法 Pending CN1624669A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 200310112392 CN1624669A (zh) 2003-12-02 2003-12-02 一种用于提高文件服务器磁盘读取速率的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 200310112392 CN1624669A (zh) 2003-12-02 2003-12-02 一种用于提高文件服务器磁盘读取速率的方法

Publications (1)

Publication Number Publication Date
CN1624669A true CN1624669A (zh) 2005-06-08

Family

ID=34759734

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200310112392 Pending CN1624669A (zh) 2003-12-02 2003-12-02 一种用于提高文件服务器磁盘读取速率的方法

Country Status (1)

Country Link
CN (1) CN1624669A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102279714A (zh) * 2011-08-26 2011-12-14 上海文广科技(集团)有限公司 Io请求控制方法和装置
WO2013117142A1 (en) * 2012-02-07 2013-08-15 Tencent Technology (Shenzhen) Company Limited File processing method and system
CN106383851A (zh) * 2016-08-31 2017-02-08 福建星网视易信息系统有限公司 一种多媒体播放并发连接数优化方法、装置和系统
CN106791957A (zh) * 2016-12-07 2017-05-31 北京华夏电通科技有限公司 视频直播处理方法及装置

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102279714A (zh) * 2011-08-26 2011-12-14 上海文广科技(集团)有限公司 Io请求控制方法和装置
CN102279714B (zh) * 2011-08-26 2014-03-26 上海文广科技(集团)有限公司 Io请求控制方法和装置
WO2013117142A1 (en) * 2012-02-07 2013-08-15 Tencent Technology (Shenzhen) Company Limited File processing method and system
US9684660B2 (en) 2012-02-07 2017-06-20 Tencent Technology (Shenzhen) Company Limited File processing method and system
CN106383851A (zh) * 2016-08-31 2017-02-08 福建星网视易信息系统有限公司 一种多媒体播放并发连接数优化方法、装置和系统
CN106791957A (zh) * 2016-12-07 2017-05-31 北京华夏电通科技有限公司 视频直播处理方法及装置

Similar Documents

Publication Publication Date Title
US7103595B2 (en) Streaming server
US7996623B2 (en) Read ahead storage control
US7743216B2 (en) Predicting accesses to non-requested data
US7500063B2 (en) Method and apparatus for managing a cache memory in a mass-storage system
Ozden et al. Disk striping in video server environments
US8363519B2 (en) Hot data zones
US6327644B1 (en) Method and system for managing data in cache
WO2006104698A2 (en) Streaming media content delivery system and method for delivering streaming content
KR20030001367A (ko) 제한된 요청 재배열을 구비하는 디스크 스케쥴링 시스템
US6925539B2 (en) Data transfer performance through resource allocation
CN101329691B (zh) 一种冗余磁盘阵列共享文件系统及其读写方法
CN1624669A (zh) 一种用于提高文件服务器磁盘读取速率的方法
US20080005466A1 (en) 2D dynamic adaptive data caching
AU2011201381B1 (en) Multiple phase distributed reduction analytics performance enhancements
EP0923758A2 (en) System for supplying data streams
CN1908915A (zh) 用于管理元数据的方法和系统
CN109375868B (zh) 一种数据存储方法、调度装置、系统、设备及存储介质
Ryu et al. Impact of flash memory on video-on-demand storage: Analysis of tradeoffs
Reisslein et al. Striping for interactive video: Is it worth it?
Rangaswami et al. Fine-grained device management in an interactive media server
US6721845B1 (en) Algorithm for maintaining maximum streaming performance of mirrored disks
Wright An efficient video-on-demand model
Anastasiadis et al. Disk-striping scalability in the exedra media server
CN1487436A (zh) 基于多通道存储设备的海量存储系统及其系统控制方法
Manjunath et al. Dynamic data replication on flash SSD assisted video-on-demand servers

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
C57 Notification of unclear or unknown address
DD01 Delivery of document by public notice

Addressee: Liu Bailiang

Document name: Notification before expiration of term

SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication