一种磁盘读限速的方法和装置与流程

文档序号:11829521阅读:510来源:国知局
一种磁盘读限速的方法和装置与流程

本发明涉及计算机技术领域,尤其涉及一种磁盘读限速技术。



背景技术:

设备中应用进程上传数据过程中,首先将磁盘文件读取到内存中,然后再通过所述设备操作系统网络组件发送给服务器,以网盘类产品上传数据为例,现有的全速读取磁盘的方法,全速读取磁盘数据直到文件结束,这种读取方式会造成磁盘资源极度消耗,容易造成所述设备卡顿,而不能正常工作;现有的以固定限速读取磁盘的方法,全程以固定限速读取磁盘数据,当所述磁盘读速度低于特定值时,在当前线程中睡眠,采用这种读取方式,当磁盘性能较好时,不能充分利用所述设备的资源,造成资源浪费。

因此,如何提供一种既能避免进程快速读取造成的卡顿现象,又能充分的利用设备的资源的磁盘读限速技术,成为本领域技术人员亟需解决的问题之一。



技术实现要素:

本发明的目的是提供一种磁盘读限速的方法和装置。

根据本发明的一个方面,提供了一种磁盘读限速的方法,其中,该方法包括以下步骤:

按照预定时间间隔,获取执行当前进程的当前设备中磁盘的读百分比;

根据所述磁盘的读百分比判断所述当前设备的工作状态;

根据所述当前设备的工作状态,动态调整当前进程读取所述磁盘的读速度阈值。

优选地,所述根据所述磁盘的读百分比判断所述当前设备的工作状态的步骤包括:

所述磁盘的读百分比大于等于第一读百分比阈值时,判断所述当前设备的工作状态为繁忙;

所述磁盘的读百分比小于等于第二读百分比阈值时,判断所述当前设备的工作状态为空闲。

优选地,所述根据所述当前设备的工作状态,动态调整当前进程读取所述磁盘的读速度阈值的步骤包括:

若所述当前设备的工作状态为繁忙,减小所述磁盘的读速度阈值;

若所述当前设备的工作状态为空闲,增加所述磁盘的读速度阈值。

优选地,所述根据所述当前设备的工作状态,动态调整当前进程读取所述磁盘的读速度阈值的步骤包括:

若所述当前设备的工作状态为繁忙,以第一预定数值减小所述磁盘的读速度阈值;

若所述当前设备的工作状态为空闲,以第二预定数值增加所述磁盘的读速度阈值;

其中,所述第一预定数值与第二预定数值根据所述磁盘的类型和性能设置。

优选地,该方法还包括:

所述当前进程进行初始化时,根据所述磁盘的类型和性能,设置所述磁盘的读速度阈值。

优选地,该方法还包括:

动态计算并监测所述磁盘的读速度,确保所述磁盘的读速度小于等于所述读速度阈值。

根据本发明的另一个方面,还提供了一种磁盘读限速装置,其中,该装置包括以下装置:

用于按照预定时间间隔,获取执行当前进程的当前设备中磁盘的读百分比的装置;

用于根据所述磁盘的读百分比判断所述当前设备的工作状态的装置;

用于根据所述当前设备的工作状态,动态调整当前进程读取所述磁盘的读速度阈值的装置。

优选地,所述用于根据所述磁盘的读百分比判断所述当前设备的工作状态的装置用于:

所述磁盘的读百分比大于等于第一读百分比阈值时,判断所述当前设备的工作状态为繁忙;

所述磁盘的读百分比小于等于第二读百分比阈值时,判断所述当前设备的工作状态为空闲。

优选地,所述用于根据所述当前设备的工作状态,动态调整当前进程读取所述磁盘的读速度阈值的装置用于:

若所述当前设备的工作状态为繁忙,减小所述磁盘的读速度阈值;

若所述当前设备的工作状态为空闲,增加所述磁盘的读速度阈值。

优选地,所述用于根据所述当前设备的工作状态,动态调整当前进程读取所述磁盘的读速度阈值的装置用于:

若所述当前设备的工作状态为繁忙,以第一预定数值减小所述磁盘的读速度阈值;

若所述当前设备的工作状态为空闲,以第二预定数值增加所述磁盘的读速度阈值;

其中,所述第一预定数值与第二预定数值根据所述磁盘的类型和性能设置。

优选地,该磁盘读限速装置还包括:

用于所述当前进程进行初始化时,根据所述磁盘的类型和性能,设置所述磁盘的读速度阈值的装置。

优选地,该磁盘读限速装置还包括:

用于动态计算并监测所述磁盘的读速度,确保所述磁盘的读速度小于等于所述读速度阈值的装置。

与现有技术相比,本发明具有以下优点:

本发明按照预定时间间隔,获取执行当前进程的当前设备中磁盘的读百分比,根据所述磁盘的读百分比判断所述当前设备的工作状态,根据所述当前设备的工作状态,动态调整当前进程读取所述磁盘的读速度阈值,从而调整磁盘的读数据速度,在磁盘性能较差时,保证机器正常运行的同时读取磁盘数据,在磁盘性能较好时,可以充分利用当前设备的资源,提高了设备运行的稳定性,在保证设备正常运行的前提下实现了设备资源的充分利用,提升了用户的使用体验。

进一步地,本发明根据所述设备的工作状态,调整当前进程读取所述磁盘的读速度阈值时,以相邻的上一次更新后的磁盘的读速度阈值为基础进行相应的增加或者减小,从而可以动态调整磁盘的读数据速度,在用户使用当前设备体验和机器资源利用两者之间进行智能调节。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:

图1示出根据本发明一个方面的一种磁盘读限速装置的结构示意图;

图2示出根据本发明另一个方面的一种磁盘读限速的方法的流程示意图。

附图中相同或相似的附图标记代表相同或相似的部件。

具体实施方式

在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。

在上下文中所称“计算机设备”,也称为“电脑”,是指可以通过运行预定程序或指令来执行数值计算和/或逻辑计算等预定处理过程的智能电子设备,其可以包括处理器与存储器,由处理器执行在存储器中预存的存续指令来执行预定处理过程,或是由ASIC、FPGA、DSP等硬件执行预定处理过程,或是由上述二者组合来实现。计算机设备包括但不限于服务器、个人电脑、笔记本电脑、平板电脑、智能手机等。

所述计算机设备包括用户设备与网络设备。其中,所述用户设备包括但不限于电脑、智能手机、PDA等;所述网络设备包括但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(Cloud Computing)的由大量计算机或网络服务器构成的云,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。其中,所述计算机设备可单独运行来实现本发明,也可接入网络并通过与网络中的其他计算机设备的交互操作来实现本发明。其中,所述计算机设备所处的网络包括但不限于互联网、广域网、城域网、局域网、VPN网络等。

需要说明的是,所述用户设备、网络设备和网络等仅为举例,其他现有的或今后可能出现的计算机设备或网络如可适用于本发明,也应包含在本发明保护范围以内,并以引用方式包含于此。

后面所讨论的方法(其中一些通过流程图示出)可以通过硬件、软件、固件、中间件、微代码、硬件描述语言或者其任意组合来实施。当用软件、固件、中间件或微代码来实施时,用以实施必要任务的程序代码或代码段可以被存储在机器或计算机可读介质(比如存储介质)中。(一个或多个)处理器可以实施必要的任务。

这里所公开的具体结构和功能细节仅仅是代表性的,并且是用于描述本发明的示例性实施例的目的。但是本发明可以通过许多替换形式来具体实现,并且不应当被解释成仅仅受限于这里所阐述的实施例。

应当理解的是,虽然在这里可能使用了术语“第一”、“第二”等等来描述各个单元,但是这些单元不应当受这些术语限制。使用这些术语仅仅是为了将一个单元与另一个单元进行区分。举例来说,在不背离示例性实施例的范围的情况下,第一单元可以被称为第二单元,并且类似地第二单元可以被称为第一单元。这里所使用的术语“和/或”包括其中一个或更多所列出的相关联项目的任意和所有组合。

应当理解的是,当一个单元被称为“连接”或“耦合”到另一单元时,其可以直接连接或耦合到所述另一单元,或者可以存在中间单元。与此相对,当一个单元被称为“直接连接”或“直接耦合”到另一单元时,则不存在中间单元。应当按照类似的方式来解释被用于描述单元之间的关系的其他词语(例如“处于...之间”相比于“直接处于...之间”,“与...邻近”相比于“与...直接邻近”等等)。

这里所使用的术语仅仅是为了描述具体实施例而不意图限制示例性实施例。除非上下文明确地另有所指,否则这里所使用的单数形式“一个”、“一项”还意图包括复数。还应当理解的是,这里所使用的术语“包括”和/或“包含”规定所陈述的特征、整数、步骤、操作、单元和/或组件的存在,而不排除存在或添加一个或更多其他特征、整数、步骤、操作、单元、组件和/或其组合。

还应当提到的是,在一些替换实现方式中,所提到的功能/动作可以按照不同于附图中标示的顺序发生。举例来说,取决于所涉及的功能/动作,相继示出的两幅图实际上可以基本上同时执行或者有时可以按照相反的顺序来执行。

下面结合附图对本发明作进一步详细描述。

图1示出根据本发明一个方面的一种磁盘读限速装置的结构示意图。磁盘读限速装置1包括:1)用于按照预定时间间隔,获取执行当前进程的当前设备中磁盘的读百分比的装置,以下简称获取装置101;2)用于根据所述磁盘的读百分比判断所述当前设备的工作状态的装置,以下简称判断装置102;3)用于根据所述当前设备的工作状态,动态调整当前进程读取所述磁盘的读速度阈值的装置,以下简称调整装置103。

在此,磁盘读限速装置1例如可以位于计算机设备中,所述计算机设备包括网络设备与用户设备。所述磁盘读限速装置1例如位于网络设备中,通过动态调整网络设备进程读取磁盘的读速度阈值,从而限制网络设备进程读取磁盘的读速度,其中,所述磁盘为网络设备的磁盘。所述磁盘读限速装置1例如位于用户设备中,如位于用户设备的某一应用装置中,该应用装置例如为位于用户设备中的网盘客户端装置或者其他应用对应的应用装置,当该应用装置运行时,磁盘读限速装置1通过动态调整该应用装置的进程读取磁盘的读速度阈值,从而限制该应用装置的进程读取磁盘的读速度,其中所述磁盘为用户设备的磁盘。

以下以磁盘读限速装置1位于用户设备中为例进行详细阐述。

所述用户设备包括但不限于个人电脑、便携式电脑、平板电脑、智能手机、PDA等设备。本领域技术人员应能理解上述用户设备仅为举例,其他现有的或者今后可能出现的用户设备如可适用于本发明也应包含在本发明保护范围内,并以引用的方式包含于此。

其中,获取装置101按照预定时间间隔,获取执行当前进程的当前设备中磁盘的读百分比。具体地,当设备进程运行时,获取装置101例如通过磁盘实时性能监控模块按照预定时间间隔,持续收集磁盘的读百分比,例如通过一次或多次调用该设备所提供的应用程序接口(API)或其他约定的通信方式,获取设备当前运行进程中磁盘的读百分比。其中,所述预定时间间隔例如为1秒,或者根据磁盘的类型、性能或者设备系统当前正在运行的进程个数,按照一定的规则设置或动态调整所述预定时间间隔。其中,所述磁盘实时性能监控模块为系统提供的可以实时监控磁盘当前性能的功能模块,所述磁盘实时性能监控模块监控的对象包括但不限于:1)磁盘的读百分比;2)每秒I/O数(IOPS或tps);3)吞吐量(Throughput);4)平均I/O数据尺寸;5)服务时间(Service Time);6)I/O等待队列长度(Queue Length);7)等待时间(Wait Time)。其中,所述磁盘的读百分比是选定的磁盘驱动器处于读取请求和处理命令(如寻道)等活动状态时所占用的时间百分比,即磁盘利用率。具体地,磁盘的读百分比等于磁盘驱动器繁忙时间与系统运行总时间的比值。

在此,假定以参数cdrp表示磁盘读百分比,磁盘驱动器繁忙时间表示为cdbt,系统运行总时间表示为sott,则磁盘读百分比可以通过如下公式来进行计算:

cdrp=cdbt/sott

本领域技术人员应能理解,上述预定时间间隔为1秒仅为举例,其他现有的或者今后可能出现的预定时间间隔的设定,如可适用于本发明都应包含在本发明的保护范围内,并在此以引用的方式包含于此。本领域技术人员还应能理解,用于获取设备当前运行进程中磁盘的读百分比的磁盘实时性能监控模块仅为举例,其他现有的或者今后可能出现的用于获取设备当前运行进程中磁盘的读百分比的模块,如可适用于本发明都应包含在本发明的保护范围内,并在此以引用的方式包含于此。

判断装置102根据所述磁盘的读百分比判断所述当前设备的工作状态。具体地,磁盘的读百分比与资源争用程度成正比,与性能成反比,即磁盘的读百分比越高,进程间资源争用就越严重,设备工作状态越繁忙,设备响应时间就越长;相反,磁盘的读百分比越低,进程间资源争用的现象越不突出,设备工作状态越空闲,设备响应时间就越短,判断装置102根据获取装置101获取的所述磁盘的读百分比的大小,判断当前设备的工作状态是繁忙或者空闲,根据当前设备的具体工作状态,动态调整该当前进程读取磁盘的读速度阈值,从而实现调整当前进程读取所述磁盘的读速度。例如,获取装置101每隔1秒获取一次当前设备中磁盘的读百分比A,当A的数值比较大时,例如大于等于92%时,判断装置102判断出所述当前设备的工作状态比较繁忙,磁盘工作量大,资源占用多;当A的数值比较小时,例如小于等于75%时,判断装置102判断出所述当前设备的工作状态为比较空闲,磁盘工作量小,资源占用少。

在此,所述磁盘的读百分比大于等于第一读百分比阈值时,判断装置102判断所述当前设备的工作状态为繁忙;所述磁盘的读百分比小于等于第二读百分比阈值时,判断装置102判断所述当前设备的工作状态为空闲。具体地,所述第一读百分比阈值为用户或者开发者根据磁盘的类型以及系统与磁盘的整体性能设置的、判断当前设备能否正常处理数据的读百分比阈值,或者,根据当前设备临近卡顿状态的磁盘的边界读百分比设置的读百分比阈值。当磁盘的读百分比超过或者等于该第一读百分比阈值时,表示当前设备需要处理的任务比较多,当前设备可能会出现卡顿,无法正常工作或者读取数据的速度比较慢,判断装置102判断当前设备的工作状态为繁忙。所述第二读百分比阈值为用户或者开发者根据磁盘的类型以及系统与磁盘的整体性能设置的、当前设备能够工作于最优状态的读百分比阈值,当磁盘的读百分比小于等于该第二读百分比阈值时,当前设备的资源利用率不高,判断装置102判断当前设备的工作状态为空闲。例如,根据磁盘的类型或者系统的性能状态得出,当固态磁盘的读百分比大于等于90%时,固态磁盘运转速度开始变慢,或者开始出现卡顿现象,所述第一读百分比阈值设置为90%;当固态磁盘的读百分比小于等于70%时,固态磁盘处理速度达到最佳状态,所述第二读百分比阈值设置为70%。当所述固态磁盘的读百分比大于等于90%时,判断装置102判断所述当前设备的工作状态为繁忙;当所述固态磁盘的读百分比小于等于70%时,判断装置102判断所述当前设备的工作状态为空闲。

本领域技术人员应能理解,上述根据所述磁盘的读百分比判断所述当前设备的工作状态的方式仅为举例,现有的或者今后可能出现的根据所述磁盘的读百分比判断所述当前设备的工作状态的方式如可适用于本发明都应包含在本发明保护范围内,并在此以引用的方式包含于此。

调整装置103根据所述当前设备的工作状态,动态调整当前进程读取所述磁盘的读速度阈值。具体地,判断装置102判断出当前设备的工作状态是繁忙还是空闲后,调整装置103根据所述当前设备处于繁忙或者空闲的工作状态,对应地减小或者增加当前设备读取所述磁盘的读速度阈值,通过调整所述读速度阈值的方式,实现调整当前进程读取所述磁盘的读速度,进而保证所述磁盘的正常工作以及保证设备资源的充分利用。在此,所述读速度阈值意指为当前进程设置的、控制当前进程读取设备磁盘数据速度的阈值,用于限制当前进程读取所述磁盘的最大值,有助于保证磁盘运行的稳定性,并且可以通过改变所述磁盘读速度阈值来调整当前进程读取所述磁盘的读速度。

在此,磁盘读限速装置1通过实时检测磁盘的读百分比,动态调整所述磁盘的读速度阈值,从而调整磁盘的读数据速度,在保证当前设备正常运行的前提下,充分利用当前设备的资源。

优选地,若所述当前设备的工作状态为繁忙,调整装置103减小当前进程读取所述磁盘的读速度阈值;若所述当前设备的工作状态为空闲,调整装置103增加当前进程读取所述磁盘的读速度阈值。具体地,当前设备的工作状态为繁忙时,为保证当前设备的正常运行,调整装置103通过减小当前进程读取所述磁盘的读速度阈值,将当前进程读取所述磁盘的读速度阈值更新为减小后的数值,控制当前进程读取所述磁盘的读速度,确保当前进程持续以所述读速度阈值的读速度读取磁盘数据时,所述磁盘仍然能够正常运转;当前设备的工作状态为空闲时,为保证当前设备的资源得到充分利用,调整装置103增加当前进程读取所述磁盘的读速度阈值,将当前进程读取所述磁盘的读速度阈值更新为增加后的数值,提高当前进程读取所述磁盘的读速度,进而提高当前进程的工作效率。例如,当前设备的工作状态为繁忙时,调整装置103将当前进程读取所述磁盘的读速度阈值由60MB/s减小至55MB/s,当前进程读取所述磁盘的读速度阈值更改为55MB/s,使得当前进程读取所述磁盘的读速度最大不超过55MB/s,减轻了所述磁盘的运转负荷,防止当前设备出现卡顿;当前设备的工作状态为空闲时,将当前进程读取所述磁盘的读速度阈值由60MB/s提高至62MB/s,当前进程读取所述磁盘的读速度阈值更改为62MB/s,提高了当前设备的资源利用率。

在此,获取装置101每隔预定时间间隔,例如为1s,便获取一次当前设备中磁盘的读百分比,判断装置102根据该磁盘的读百分比判断当前设备的工作状态为空闲或者繁忙,调整装置103根据所述工作状态来确定需要增加还是减小当前进程读取所述磁盘的读速度阈值,调整装置103调整当前进程读取所述磁盘的读速度阈值时以相邻的上一次更新后的磁盘的读速度阈值为基础进行相应的增加或者减小。动态调整磁盘的读速度,在用户使用当前设备体验和机器资源利用两者之间进行智能调节,在磁盘性能较差的机器上,不会因为当前进程上传文件而造成机器卡顿,在磁盘性能较好的机器上,可以充分利用系统资源。

在此,调整装置103可以以一固定值来增加或减小当前进程读取所述磁盘的读速度阈值,也可以每次以不同的值来增加或减小当前进程读取所述磁盘的读速度阈值。

优选地,若所述当前设备的工作状态为繁忙,调整装置103以第一预定数值减小所述磁盘的读速度阈值;若所述当前设备的工作状态为空闲,调整装置103以第二预定数值增加所述磁盘的读速度阈值;其中,所述第一预定数值与第二预定数值根据所述磁盘的类型和性能设置。具体地,所述第一预定数值和第二预定数值可以由用户根据所述磁盘的类型和性能要求直接设置,也可以通过如下方式设置:根据上述第一读百分比阈值或者第二读百分比阈值的情况,确定当前进程读取所述磁盘的读速度阈值需要减小或者增加的数值大小,例如,当前设备工作状态为繁忙,并且当前设备的磁盘的读百分比减去第一读百分比阈值得到的差值大于等于5%时,当前设备存在卡顿等隐患,所述当前进程读取所述磁盘的读速度阈值需要减去较大的数值,例如8MB/s,使得当前设备读取所述磁盘的读速度快速减小,保证所述磁盘的正常运行,如果所述差值小于5%,当前进程读取所述磁盘的读速度阈值可以减去较小的数值,例如,2MB/s;当前设备工作状态为空闲,并且所述第二读百分比阈值减去当前设备的磁盘的读百分比得到的差值大于等于6%时,当前设备任务少,资源利用率不高,所述当前进程读取所述磁盘的读速度阈值需要增加较大的数值,例如,5MB/s,使得当前设备读取所述磁盘的速度快速提高,尽快提高当前设备的资源利用率,如果所述第二读百分比阈值减去当前设备的磁盘的读百分比得到的差值小于6%,当前进程读取所述磁盘的读速度阈值可以增加较小的数值,例如,1MB/s。

在此,每当调整装置103需要减小所述磁盘的读速度阈值,即以第一预定数值减小所述磁盘的读速度阈值;每当调整装置103需要增加所述磁盘的读速度阈值,即以第二预定数值增加所述磁盘的读速度阈值。例如,当判断装置102判断当前设备工作状态为空闲,调整装置103以第二预定数值增加所述磁盘的读速度阈值;随后,当隔了预定时间间隔,例如为1s,获取装置101再次获取当前设备中磁盘的读百分比,判断装置102根据该磁盘的读百分比,判断当前设备的工作状态还是为空闲,则调整装置103再次以第二预定数值增加所述磁盘的读速度阈值。

以下以一具体的公式说明该磁盘读限速装置1动态调整当前进程读取所述磁盘的读速度阈值的过程。

在此,假定当前“磁盘读百分比”为参数cdrp;机器IO繁忙时的“磁盘读百分比”为参数xdrp,即,第一读百分比阈值为参数xdrp;机器IO空闲时的“磁盘读百分比”为参数ndrp,即,第二读百分比阈值为参数ndrp;当前进程读取磁盘的读速度阈值为参数drst。当该进程初始化时,设置drst=N(单位:MB/s)。

磁盘读限速装置1每隔预定时间间隔,获取执行当前进程的当前设备中磁盘的读百分比,例如,每隔1秒进行一次“磁盘读百分比”数值采样,并按照如下公式进行验算:

其中delta1和delta2为调节进程磁盘读速度的两个数值,delta1为第一预定数值,delta2为第二预定数值,其单位是MB/s。

在此,根据磁盘的类型和性能,或再结合经验值,例如设置N=60MB/s,xdrp=90%,ndrp=70%,deltal=5MB/s,delta2=1MB/s。

优选地,磁盘读限速装置1还包括:1)用于设备当前运行进程进行初始化时,根据所述磁盘的类型和性能,设置所述磁盘的读速度阈值的装置,以下简称设置装置104(未示出);2)用于动态计算并监测所述磁盘的读速度,确保所述磁盘的读速度小于等于所述读速度阈值的装置,以下简称计算监测装置105(未示出)。

设备当前运行进程进行初始化时,设置装置104根据所述磁盘的类型和性能,设置所述磁盘的读速度阈值。具体地,当重新开启设备当前运行进程时,或者重新安装所述当前运行程序或者对当前运行程序进行程序更新时,设置装置104根据磁盘的类型和性能,设置所述磁盘的初始读速度阈值,例如为60MB/s,使得调整装置103动态调整当前进程读取所述磁盘的读速度阈值时,以该初始读速度阈值,例如为60MB/s,为基础阈值进行逐步调整。其中所述磁盘的类型例如为:固态磁盘、机械磁盘或者混合磁盘等,磁盘的性能例如为:磁盘的读百分比、每秒I/O数、吞吐量、平均I/O数据尺寸、服务时间、I/O等待队列长度、等待时间、平均寻道时间等。

计算监测装置105动态计算并监测所述磁盘的读速度,确保当前进程读取所述磁盘的读速度小于等于所述读速度阈值。具体地,计算监测装置105每隔预定时间间隔计算并监测所述磁盘的读速度,保证当前进程读取所述磁盘的读速度最大时不超过所述读速度阈值,实现通过控制当前进程读取所述磁盘的读速度阈值来调整当前进程读取多数磁盘的读速度。

以下通过一具体实施例对上述磁盘读限速装置1进行详细说明:

百度云盘的客户端上传数据过程中首先将磁盘文件读取到当前设备内存中,然后再通过当前设备的操作系统网络组件发送给服务器,提前设置一下参数:1)进程开始运行时,当前进程读取所述磁盘的读速度初始阈值,例如60MB/s;2)获取装置101每隔一秒钟便获取一次所述当前进程读取所述磁盘的读速度阈值;3)所述第一读百分比阈值例如为90%,所述第二读百分比阈值例如为70%;4)第一预定数值为5MB/s,第二预定数值为1MB/s。当启动百度云盘客户端上传数据时,与百度云盘客户端对应的进程开始运行,获取装置101通过磁盘实时性能监控模块获取当前设备的磁盘的读百分比A,然后将所述磁盘的读百分比分别与第一读百分比阈值,90%,和第二读百分比阈值,70%,进行比较,当判断装置102判断出A大于等于90%时,此时设备的工作状态为繁忙,调整装置103将所述磁盘的读速度初始阈值减小5MB/s,变为更新后的磁盘的读速度阈值至55MB/s;当判断装置102判断出A小于等于70%时,此时设备的工作状态为空闲,调整装置103将所述磁盘的读速度初始阈值增加1MB/s,变为更新后的磁盘的读速度阈值61MB/s;获取装置101每隔一秒钟,便获取一次当前设备中磁盘的读百分比,判断装置102根据该磁盘的读百分比判断当前设备的工作状态为空闲或者繁忙,调整装置103根据所述工作状态来确定需要增加还是减小当前进程读取所述磁盘的读速度阈值,调整装置103调整当前进程读取所述磁盘的读速度阈值是以相邻的上一次更新后的磁盘的读速度阈值为基础进行相应的增加或者减小,动态调整磁盘的读速度,在用户使用当前设备体验和机器资源利用两者之间进行智能调节。例如,在上述调整装置103将磁盘的读速度阈值降低至55MB/s之后,隔了1秒中,获取装置101再次获取当前设备的磁盘的读百分比A,然后将所述磁盘的读百分比分别与第一读百分比阈值,90%,和第二读百分比阈值,70%,进行比较,当判断装置102判断出A大于等于90%时,此时设备的工作状态为繁忙,调整装置103再次将所述磁盘的读速度阈值减小5MB/s,变为更新后的磁盘的读速度阈值至50MB/s;当判断装置102判断出A小于等于70%时,此时设备的工作状态为空闲,调整装置103将所述磁盘的读速度阈值增加1MB/s,变为更新后的磁盘的读速度阈值56MB/s。

图2示出根据本发明另一个方面的一种磁盘读限速的方法的流程示意图。

在此,磁盘读限速装置1例如可以位于计算机设备中,所述计算机设备包括网络设备与用户设备。所述磁盘读限速装置1例如位于网络设备中,通过动态调整网络设备进程读取磁盘的读速度阈值,从而限制网络设备进程读取磁盘的读速度,其中,所述磁盘为网络设备的磁盘。所述磁盘读限速装置1例如位于用户设备中,如位于用户设备的某一应用装置中,该应用装置例如为位于用户设备中的网盘客户端装置或者其他应用对应的应用装置,当该应用装置运行时,磁盘读限速装置1通过动态调整该应用装置的进程读取磁盘的读速度阈值,从而限制该应用装置的进程读取磁盘的读速度,其中所述磁盘为用户设备的磁盘。

以下以磁盘读限速装置1位于用户设备中为例进行详细阐述。

所述用户设备包括但不限于个人电脑、便携式电脑、平板电脑、智能手机、PDA等设备。本领域技术人员应能理解上述用户设备仅为举例,其他现有的或者今后可能出现的用户设备如可适用于本发明也应包含在本发明保护范围内,并以引用的方式包含于此。

在步骤S201中,磁盘读限速装置1按照预定时间间隔,获取执行当前进程的当前设备中磁盘的读百分比。具体地,当设备进程运行时,在步骤S201中,磁盘读限速装置1例如通过磁盘实时性能监控模块按照预定时间间隔,持续收集磁盘的读百分比,例如通过一次或多次调用该设备所提供的应用程序接口(API)或其他约定的通信方式,获取设备当前运行进程中磁盘的读百分比。其中,所述预定时间间隔例如为1秒,或者根据磁盘的类型、性能或者设备系统当前正在运行的进程个数,按照一定的规则设置或动态调整所述预定时间间隔。其中,所述磁盘实时性能监控模块为系统提供的可以实时监控磁盘当前性能的功能模块,所述磁盘实时性能监控模块监控的对象包括但不限于:1)磁盘的读百分比;2)每秒I/O数(IOPS或tps);3)吞吐量(Throughput);4)平均I/O数据尺寸;5)服务时间(Service Time);6)I/O等待队列长度(Queue Length);7)等待时间(Wait Time)。其中,所述磁盘的读百分比是选定的磁盘驱动器处于读取请求和处理命令(如寻道)等活动状态时所占用的时间百分比,即磁盘利用率。具体地,磁盘的读百分比等于磁盘驱动器繁忙时间与系统运行总时间的比值。

在此,假定以参数cdrp表示磁盘读百分比,磁盘驱动器繁忙时间表示为cdbt,系统运行总时间表示为sott,则磁盘读百分比可以通过如下公式来进行计算:

cdrp=cdbt/sott

本领域技术人员应能理解,上述预定时间间隔为1秒仅为举例,其他现有的或者今后可能出现的预定时间间隔的设定,如可适用于本发明都应包含在本发明的保护范围内,并在此以引用的方式包含于此。本领域技术人员还应能理解,用于获取设备当前运行进程中磁盘的读百分比的磁盘实时性能监控模块仅为举例,其他现有的或者今后可能出现的用于获取设备当前运行进程中磁盘的读百分比的模块,如可适用于本发明都应包含在本发明的保护范围内,并在此以引用的方式包含于此。

在步骤S202中,磁盘读限速装置1根据所述磁盘的读百分比判断所述当前设备的工作状态。具体地,磁盘的读百分比与资源争用程度成正比,与性能成反比,即磁盘的读百分比越高,进程间资源争用就越严重,设备工作状态越繁忙,设备响应时间就越长;相反,磁盘的读百分比越低,进程间资源争用的现象越不突出,设备工作状态越空闲,设备响应时间就越短,在步骤S202中,磁盘读限速装置1根据在步骤S201中获取的所述磁盘的读百分比的大小,判断当前设备的工作状态是繁忙或者空闲,根据当前设备的具体工作状态,动态调整该当前进程读取磁盘的读速度阈值,从而实现调整当前进程读取所述磁盘的读速度。例如,在步骤S201中,磁盘读限速装置1每隔1秒获取一次当前设备中磁盘的读百分比A,当A的数值比较大时,例如大于等于92%时,在步骤S202中,磁盘读限速装置1判断出所述当前设备的工作状态比较繁忙,磁盘工作量大,资源占用多;当A的数值比较小时,例如小于等于75%时,在步骤S202中,磁盘读限速装置1判断出所述当前设备的工作状态为比较空闲,磁盘工作量小,资源占用少。

在此,所述磁盘的读百分比大于等于第一读百分比阈值时,在步骤S202中,磁盘读限速装置1判断所述当前设备的工作状态为繁忙;所述磁盘的读百分比小于等于第二读百分比阈值时,在步骤S202中,磁盘读限速装置1判断所述当前设备的工作状态为空闲。具体地,所述第一读百分比阈值为用户或者开发者根据磁盘的类型以及系统与磁盘的整体性能设置的、判断当前设备能否正常处理数据的读百分比阈值,或者,根据当前设备临近卡顿状态的磁盘的边界读百分比设置的读百分比阈值。当磁盘的读百分比超过或者等于该第一读百分比阈值时,表示当前设备需要处理的任务比较多,当前设备可能会出现卡顿,无法正常工作或者读取数据的速度比较慢,在步骤S202中,磁盘读限速装置1判断当前设备的工作状态为繁忙。所述第二读百分比阈值为用户或者开发者根据磁盘的类型以及系统与磁盘的整体性能设置的、当前设备能够工作于最优状态的读百分比阈值,当磁盘的读百分比小于等于该第二读百分比阈值时,当前设备的资源利用率不高,在步骤S202中,磁盘读限速装置1判断当前设备的工作状态为空闲。例如,根据磁盘的类型或者系统的性能状态得出,当固态磁盘的读百分比大于等于90%时,固态磁盘运转速度开始变慢,或者开始出现卡顿现象,所述第一读百分比阈值设置为90%;当固态磁盘的读百分比小于等于70%时,固态磁盘处理速度达到最佳状态,所述第二读百分比阈值设置为70%。当所述固态磁盘的读百分比大于等于90%时,在步骤S202中,磁盘读限速装置1判断所述当前设备的工作状态为繁忙;当所述固态磁盘的读百分比小于等于70%时,在步骤S202中,磁盘读限速装置1判断所述当前设备的工作状态为空闲。

本领域技术人员应能理解,上述根据所述磁盘的读百分比判断所述当前设备的工作状态的方式仅为举例,现有的或者今后可能出现的根据所述磁盘的读百分比判断所述当前设备的工作状态的方式如可适用于本发明都应包含在本发明保护范围内,并在此以引用的方式包含于此。

在步骤S203中,磁盘读限速装置1根据所述当前设备的工作状态,动态调整当前进程读取所述磁盘的读速度阈值。具体地,在步骤S202中,磁盘读限速装置1判断出当前设备的工作状态是繁忙还是空闲后,在步骤S203中,磁盘读限速装置1根据所述当前设备处于繁忙或者空闲的工作状态,对应地减小或者增加当前设备读取所述磁盘的读速度阈值,通过调整所述读速度阈值的方式,实现调整当前进程读取所述磁盘的读速度,进而保证所述磁盘的正常工作以及保证设备资源的充分利用。在此,所述读速度阈值意指为当前进程设置的、控制当前进程读取设备磁盘数据速度的阈值,用于限制当前进程读取所述磁盘的最大值,有助于保证磁盘运行的稳定性,并且可以通过改变所述磁盘读速度阈值来调整当前进程读取所述磁盘的读速度。

在此,磁盘读限速装置1通过实时检测磁盘的读百分比,动态调整所述磁盘的读速度阈值,从而调整磁盘的读数据速度,在保证当前设备正常运行的前提下,充分利用当前设备的资源。

优选地,若所述当前设备的工作状态为繁忙,在步骤S203中,磁盘读限速装置1减小当前进程读取所述磁盘的读速度阈值;若所述当前设备的工作状态为空闲,在步骤S203中,磁盘读限速装置1增加当前进程读取所述磁盘的读速度阈值。具体地,当前设备的工作状态为繁忙时,为保证当前设备的正常运行,在步骤S203中,磁盘读限速装置1通过减小当前进程读取所述磁盘的读速度阈值,将当前进程读取所述磁盘的读速度阈值更新为减小后的数值,控制当前进程读取所述磁盘的读速度,确保当前进程持续以所述读速度阈值的读速度读取磁盘数据时,所述磁盘仍然能够正常运转;当前设备的工作状态为空闲时,为保证当前设备的资源得到充分利用,在步骤S203中,磁盘读限速装置1增加当前进程读取所述磁盘的读速度阈值,将当前进程读取所述磁盘的读速度阈值更新为增加后的数值,提高当前进程读取所述磁盘的读速度,进而提高当前进程的工作效率。例如,当前设备的工作状态为繁忙时,在步骤S203中,磁盘读限速装置1将当前进程读取所述磁盘的读速度阈值由60MB/s减小至55MB/s,当前进程读取所述磁盘的读速度阈值更改为55MB/s,使得当前进程读取所述磁盘的读速度最大不超过55MB/s,减轻了所述磁盘的运转负荷,防止当前设备出现卡顿;当前设备的工作状态为空闲时,将当前进程读取所述磁盘的读速度阈值由60MB/s提高至62MB/s,当前进程读取所述磁盘的读速度阈值更改为62MB/s,提高了当前设备的资源利用率。

在此,在步骤S201中,磁盘读限速装置1每隔预定时间间隔,例如为1s,便获取一次当前设备中磁盘的读百分比,在步骤S202中,磁盘读限速装置1根据该磁盘的读百分比判断当前设备的工作状态为空闲或者繁忙,在步骤S203中,磁盘读限速装置1根据所述工作状态来确定需要增加还是减小当前进程读取所述磁盘的读速度阈值,在步骤S203中,磁盘读限速装置1调整当前进程读取所述磁盘的读速度阈值时以相邻的上一次更新后的磁盘的读速度阈值为基础进行相应的增加或者减小。动态调整磁盘的读速度,在用户使用当前设备体验和机器资源利用两者之间进行智能调节,在磁盘性能较差的机器上,不会因为当前进程上传文件而造成机器卡顿,在磁盘性能较好的机器上,可以充分利用系统资源。

在此,在步骤S203中,磁盘读限速装置1可以以一固定值来增加或减小当前进程读取所述磁盘的读速度阈值,也可以每次以不同的值来增加或减小当前进程读取所述磁盘的读速度阈值。

优选地,若所述当前设备的工作状态为繁忙,在步骤S203中,磁盘读限速装置1以第一预定数值减小所述磁盘的读速度阈值;若所述当前设备的工作状态为空闲,在步骤S203中,磁盘读限速装置1以第二预定数值增加所述磁盘的读速度阈值;其中,所述第一预定数值与第二预定数值根据所述磁盘的类型和性能设置。具体地,所述第一预定数值和第二预定数值可以由用户根据所述磁盘的类型和性能要求直接设置,也可以通过如下方式设置:根据上述第一读百分比阈值或者第二读百分比阈值的情况,确定当前进程读取所述磁盘的读速度阈值需要减小或者增加的数值大小,例如,当前设备工作状态为繁忙,并且当前设备的磁盘的读百分比减去第一读百分比阈值得到的差值大于等于5%时,当前设备存在卡顿等隐患,所述当前进程读取所述磁盘的读速度阈值需要减去较大的数值,例如8MB/s,使得当前设备读取所述磁盘的读速度快速减小,保证所述磁盘的正常运行,如果所述差值小于5%,当前进程读取所述磁盘的读速度阈值可以减去较小的数值,例如,2MB/s;当前设备工作状态为空闲,并且所述第二读百分比阈值减去当前设备的磁盘的读百分比得到的差值大于等于6%时,当前设备任务少,资源利用率不高,所述当前进程读取所述磁盘的读速度阈值需要增加较大的数值,例如,5MB/s,使得当前设备读取所述磁盘的速度快速提高,尽快提高当前设备的资源利用率,如果所述第二读百分比阈值减去当前设备的磁盘的读百分比得到的差值小于6%,当前进程读取所述磁盘的读速度阈值可以增加较小的数值,例如,1MB/s。

在此,每当磁盘读限速装置1需要减小所述磁盘的读速度阈值,即以第一预定数值减小所述磁盘的读速度阈值;每当磁盘读限速装置1需要增加所述磁盘的读速度阈值,即以第二预定数值增加所述磁盘的读速度阈值。例如,当磁盘读限速装置1判断当前设备工作状态为空闲,磁盘读限速装置1以第二预定数值增加所述磁盘的读速度阈值;随后,当隔了预定时间间隔,例如为1s,磁盘读限速装置1再次获取当前设备中磁盘的读百分比,磁盘读限速装置1根据该磁盘的读百分比,判断当前设备的工作状态还是为空闲,则磁盘读限速装置1再次以第二预定数值增加所述磁盘的读速度阈值。

以下以一具体的公式说明该磁盘读限速装置1动态调整当前进程读取所述磁盘的读速度阈值的过程。

在此,假定当前“磁盘读百分比”为参数cdrp;机器IO繁忙时的“磁盘读百分比”为参数xdrp,即,第一读百分比阈值为参数xdrp;机器IO空闲时的“磁盘读百分比”为参数ndrp,即,第二读百分比阈值为参数ndrp;当前进程读取磁盘的读速度阈值为参数drst。当该进程初始化时,设置drst=N(单位:MB/s)

磁盘读限速装置1每隔预定时间间隔,获取执行当前进程的当前设备中磁盘的读百分比,例如,每隔1秒进行一次“磁盘读百分比”数值采样,并按照如下公式进行验算:

其中delta1和delta2为调节进程磁盘读速度的两个数值,delta1为第一预定数值,delta2为第二预定数值,其单位是MB/s。

在此,根据磁盘的类型和性能,或再结合经验值,例如设置N=60MB/s,xdrp=90%,ndrp=70%,delta1=5MB/s,delta2=1MB/s。

优选地,该方法还包括步骤S204(未示出)和步骤S205(未示出)。在步骤S204中,当前运行进程进行初始化时,磁盘读限速装置1根据所述磁盘的类型和性能,设置所述磁盘的读速度阈值;在步骤S205中,磁盘读限速装置1动态计算并监测所述磁盘的读速度,确保所述磁盘的读速度小于等于所述读速度阈值。

设备当前运行进程进行初始化时,在步骤S204中,磁盘读限速装置1根据所述磁盘的类型和性能,设置所述磁盘的读速度阈值。具体地,当重新开启设备当前运行进程时,或者重新安装所述当前运行程序或者对当前运行程序进行程序更新时,在步骤S204中,磁盘读限速装置1根据磁盘的类型和性能,设置所述磁盘的初始读速度阈值,例如为60MB/s,使得磁盘读限速装置1动态调整当前进程读取所述磁盘的读速度阈值时,以该初始读速度阈值,例如为60MB/s,为基础阈值进行逐步调整。其中所述磁盘的类型例如为:固态磁盘、机械磁盘或者混合磁盘等,磁盘的性能例如为:磁盘的读百分比、每秒I/O数、吞吐量、平均I/O数据尺寸、服务时间、I/O等待队列长度、等待时间、平均寻道时间等。

在步骤S205中,磁盘读限速装置1动态计算并监测所述磁盘的读速度,确保当前进程读取所述磁盘的读速度小于等于所述读速度阈值。具体地,在步骤S205中,磁盘读限速装置1每隔预定时间间隔计算并监测所述磁盘的读速度,保证当前进程读取所述磁盘的读速度最大时不超过所述读速度阈值,实现通过控制当前进程读取所述磁盘的读速度阈值来调整当前进程读取多数磁盘的读速度。

以下通过一具体实施例对上述磁盘读限速装置1进行详细说明:

百度云盘的客户端上传数据过程中首先将磁盘文件读取到当前设备内存中,然后再通过当前设备的操作系统网络组件发送给服务器,提前设置一下参数:1)进程开始运行时,当前进程读取所述磁盘的读速度初始阈值,例如60MB/s;2)磁盘读限速装置1每隔一秒钟便获取一次所述当前进程读取所述磁盘的读速度阈值;3)所述第一读百分比阈值例如为90%,所述第二读百分比阈值例如为70%;4)第一预定数值为5MB/s,第二预定数值为1MB/s。当启动百度云盘客户端上传数据时,与百度云盘客户端对应的进程开始运行,磁盘读限速装置1通过磁盘实时性能监控模块获取当前设备的磁盘的读百分比A,然后将所述磁盘的读百分比分别与第一读百分比阈值,90%,和第二读百分比阈值,70%,进行比较,当磁盘读限速装置1判断出A大于等于90%时,此时设备的工作状态为繁忙,磁盘读限速装置1将所述磁盘的读速度初始阈值减小5MB/s,变为更新后的磁盘的读速度阈值至55MB/s;当磁盘读限速装置1判断出A小于等于70%时,此时设备的工作状态为空闲,磁盘读限速装置1将所述磁盘的读速度初始阈值增加1MB/s,变为更新后的磁盘的读速度阈值61MB/s;磁盘读限速装置1每隔一秒钟,便获取一次当前设备中磁盘的读百分比,磁盘读限速装置1根据该磁盘的读百分比判断当前设备的工作状态为空闲或者繁忙,磁盘读限速装置1根据所述工作状态来确定需要增加还是减小当前进程读取所述磁盘的读速度阈值,磁盘读限速装置1调整当前进程读取所述磁盘的读速度阈值是以相邻的上一次更新后的磁盘的读速度阈值为基础进行相应的增加或者减小,动态调整磁盘的读速度,在用户使用当前设备体验和机器资源利用两者之间进行智能调节。例如,在上述磁盘读限速装置1将磁盘的读速度阈值降低至55MB/s之后,隔了1秒中,磁盘读限速装置1再次获取当前设备的磁盘的读百分比A,然后将所述磁盘的读百分比分别与第一读百分比阈值,90%,和第二读百分比阈值,70%,进行比较,当磁盘读限速装置1判断出A大于等于90%时,此时设备的工作状态为繁忙,磁盘读限速装置1再次将所述磁盘的读速度阈值减小5MB/s,变为更新后的磁盘的读速度阈值至50MB/s;当磁盘读限速装置1判断出A小于等于70%时,此时设备的工作状态为空闲,磁盘读限速装置1将所述磁盘的读速度阈值增加1MB/s,变为更新后的磁盘的读速度阈值56MB/s。

需要注意的是,本发明可在软件和/或软件与硬件的组合体中被实施,例如,本发明的各个装置可采用专用集成电路(ASIC)或任何其他类似硬件设备来实现。在一个实施例中,本发明的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本发明的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本发明的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。

对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1