一种内存调度方法及装置的制作方法

文档序号:6470190阅读:103来源:国知局

专利名称::一种内存调度方法及装置的制作方法
技术领域
:本发明涉及计算机领域,特别是涉及内存调度方法及装置。
背景技术
:内存(Cache)已成为存储设备中不可或缺的部分。现有技术中业务数据读取的主要过程是用户请求业务数据;在Cache中查找请求的业务数据;当内存中未存有该业务数据时,从主存(如硬盘、磁带、光盘和闪存等)中读取该业务数据,并将其调入内存,以供CPU访问。整个内存通过一个Cache实例对内存进行调度。其中,从主存中读取业务数据并将其调入内存时,对各种业务的业务数据采用一种数据读取策略。如果对所有业务都采用预读策略,则可能造成数据冗余;如果对所有业务都采用不预读的策略,则可能会频繁访问主存,影响数据的处理速度。Cache—般被划分为多个连续的单元空间,一个业务通常包括多个作业,每个作业的业务数据可能占用多个连续的单元空间。对于某种业务,单元空间可能被划分的过大,则导致较多内存空间的浪费,或者可能被划分的过小,则带来较多的冗余操作,影响数据的处理速度。以及,在内存保存业务数据过程中,涉及到单元空间调度策略和单元空间管理策略。单元空间管理策略是指如何为业务数据分配单元空间。单元空间调度策略是指当Cache达到满载时释放哪些单元空间。不同的业务适合的单元空间调度策略和单元空间管理策略不同,单一的单元空间调度策略和单元空间管理策略可能导致内存中的数据冗余较多和带来较多的冗余操作。综上,现有技术对整个Cache,都采用同样的内存调度方法,使得对Cache的使用受到一定程度的限制,影响Cache空间的使用率和处理数据的速度。
发明内容本发明实施例提供一种内存调度方法及装置,用于实现Cache调度策略的优化,提高内存资源的使用率和处理数据的速度。一种内存调度方法,包括以下步骤运行与用户请求的业务的种类对应的Cache实例;通过所述Cache实例,根据预先为所述种类的业务配置的调度参数的值对Cache进行调度。一种用于Cache调度的装置,包括运行模块,用于运行与用户请求的业务的种类对应的Cache实例;调度模块,用于根据预先为所述种类的业务配置的调度参数的值对内存进行调度。一种存储系统,包括内存,用于存储业务数据;内存调度装置,用于运行与用户请求的业务的种类对应的内存实例,以及通过所述内存实例,根据预先为所述种类的业务配置的调度参数的值对内存进行调度。本发明实施例为每种业务建立一个Cache实例,通过不同的实例来实现对不同种类业务的适应性调度,较佳的,根据每种业务的特点采用与其适应的调度策略,从而优化了Cache调度方式,提高内存资源的使用率和处理数据的速度。图1为本发明实施例中内存调度的主要方法流程图2为本发明实施例中根据用户请求的业务的种类划分内存空间时的内存调度的详细方法流程图3为本发明实施例中根据主存中业务的种类划分内存空间时的内存调度的详细方法流程图;图4为本发明实施例中用于内存调度的装置的主要结构图;图5为本发明实施例中用于内存调度的装置的详细结构图;图6为本发明实施例中存储系统的结构图;图7为本发明实施例中访问主存过程的示意图。具体实施例方式本发明实施例为每种业务建立一个Cache实例,以便对不同的业务采用不同的内存调度方式,尤其是釆用与业务相适应的内存调度策略。这种内存调度方式提高了内存的使用率和处理数据的速度。本发明实施例主要适用于对内存的数据区域的调度。参见图1,本实施例中内存调度的主要方法流程如下步骤101:运行与用户请求的业务的种类对应的Cache实例。步骤102:通过所述Cache实例,根据预先为所述种类的业务配置的调度参数的值对Cache进行调度。本实施例中Cache调度包括单元空间的划分策略、单元空间调度策略、单元空间管理策略和数据读取策略等。调度参数包括单元空间的划分策略参数、单元空间调度策略参数、单元空间管理策略参数和数据读取策略参数等。在上述步骤中,按业务的种类对内存进行划分有多种具体实现方式,为不同的业务配置的调度参数也可能有不同的取值,下面通过两个实施例来详细描述内存调度过程。参见图2,根据用户请求的业务的种类划分内存空间时的内存调度的详细方法流程如下预先为每种业务建立一个内存实例。本实施例中的主存是指用于永久保存业务数据的存储器,如硬盘、磁带、光盘和闪存等。步骤201:收到用户对业务l-2的请求。其中,"1"表示业务种类的标识,"2"表示种类为业务l中某个业务的业务标识。步骤202:运行与业务1对应的Cache实例1。步骤203:到Cache中查找,是否存有业务1-2的业务数据,若有,则继续步骤204,否则继续步骤205。步骤204:读取业务l-2的业务数据并返回给用户。步骤205:访问主存,并从主存中读取业务1-2的业务数据,将该业务数据返回给用户,以及保留一份在Cache中,参见图7所示的示意图。在Cache中存储业务数据的过程包括以下步骤步骤206:判断内存中是否已为业务1划分内存空间,若是,则继续步骤207,否则继续步骤208。步骤207:判断为业务1划分的内存空间是否足够存储业务1-2的业务数据,若是,则继续步骤211,否则继续步骤210。步骤208:为业务l划分内存空间。有多种具体实现方式,如按内存中业务的种类的数量对内存进行平均划分;或者,按该业务在主存中所占的存储比例为该业务划分内存空间,例如业务1在主存中占20%,则将内存空间的20%划分给业务l;或者,按用户请求的所述种类业务的业务数据的大小,为该种类业务划分内存空间,例如本次请求的业务数据的大小是1M,则为该种类业务划分的内存空间为1M2M。选用哪种划分方式可通过单元空间管理策略参数的取值确定。如果此时内存没有足够的空间划分给业务1,则可从中删除一些其它种类业务的业务数据,具体调整方法参见步骤210中的描述,采用先进先出策略或最早最少使用策略等。步骤209:在为业务1划分的内存空间中,根据为业务1配置的单元空间的划分策略参数的取值进行单元空间的划分。如流Jf某体业务的数据量比较大,适合较大的单元空间,则单元空间的划分策略参数的取值为1,表示几个等级的单元空间中最大的单元空间,如按段结构存储;如数据库业务的数据比较零散,适合较小的单元空间,则单元空间的划分策略参数的取值为3,表示几个等级的单元空间中较小的单元空间,如按页结构存储。继续步骤211。步骤210:调整业务l的内存空间。此时有多种具体实现方式,如检查内存中其它业务是否有空闲的内存空间,将其它业务的一些空闲内存空间划分给业务l,用来存储业务1-2的业务数据;或者,如从业务1的内存空间中删除一些业务数据,以便存储业务l-2的业务数据,此时根据为业务l配置的单元空间调度策略参数的取值进行内存调度,例如单元空间调度策略参数的取值为1,表示先进先出策略,或者取值为2,表示最近最少使用(LRU)策略等。继续步骤211。步骤211:为业务1-2的业务数据划分内存空间。有多种具体实现方式。为业务1划分的内存空间可能是连续的也可能不连续,如果是连续的空闲区域,则可以直接存储业务l-2的业务数据。如果是不连续的,或者业务l的内存空间是连续但有不连续存储的其它业务数据,则需要按照为业务1配置的单元空间管理策略参数的取值存储业务l-2的业务数据。例如,单元空间管理策略参数的取值为1,表示最佳算法,即选择与业务1-2的业务数据的大小最吻合的一段内存空间来存储;单元空间管理策略参数的取值为2,表示第一算法,即,用第一段能存储业务1-2的业务数据的内存空间来存储。步骤212:按照为业务1配置的数据读取策略(即按照为业务1配置的数据读取策略参数的取值),从主存中读取业务1-2的业务数据,并保存在该内存空间中。例如,业务l为流媒体业务,适合釆用向后预读的策略,则配置数据读取策略参数的取值为2,即在用户请求的业务1-2的业务数据的基础上,按数据流的方向向后预先读取一些数据保存在内存中,当用户继续请求业务1-2的业务数据时可直接从内存获得,提高数据处理速度以及减少访问主存的次数。本实施例中业务的种类包括流媒体业务、数据库业务、文件共享业务和网页浏览业务等,则它们分别适用的内存调度策略的实例可参见表l所示,具体实施时可不限于此表1<table>tableseeoriginaldocumentpage10</column></row><table>若内存调度中的某项调度策略有多个取值,可以从中选择一个进行调度。例如,网页浏览业务的单元空间管理策略有最佳算法和第一算法,如果当前为网页浏览业务划分的内存空间比较大,实际占用的比较少,可考虑采用第一算法;如果为网页浏览业务划分的内存空间中空闲空间不太大,可考虑采用最佳算法。并且,可以对内存中各业务的访问情况进行统计,根据统计结果调整为各业务配置的调度参数和/或各种类业务在内存中的存储比例。比如某种业务近期内被频繁的访问,有些业务已长期未访问或访问的次数较少,则可以适当增加频繁访问的业务的存储比例,减少较少访问的业务的存储比例。或者,对于文件共享业务,以段式结构存储,而经过统计发现,近期访问的文件比较小,为了方便调度,可以将文件共享业务的单元空间的划分策略调整为页式结构。该统计结果还可用于在某项调度策略有多个取值时,作为从中选择一个调度策略的依据。参见图3,根据主存中业务的种类划分Cache空间时的内存调度的详细方法流程如下预先为每种业务建立一个Cache实例。并且,已根据主存中业务的种类及各种类业务所占的存储比例对内存空间进行了划分。步骤301:收到用户对业务l-2的请求。步骤302:运行与业务1对应的Cache实例1。步骤303:利用内存实例1到内存中查找,是否存有业务l-2的业务数据,若有,则继续步骤304,否则继续步骤305。步骤304:读取业务1-2的业务数据并返回给用户。步骤305:访问主存,并从主存中读取业务1-2的业务数据,将该业务数据返回给用户,以及保留一份在Cache中。步骤306:判断为业务1划分的内存空间是否足够存储业务1-2的业务数据,若是,则继续步骤308,否则继续步骤307。步骤307:调整业务1的内存空间,即按照业务1的单元空间调度策略,从业务1的内存空间中删除一些业务1的业务数据。步骤308:为业务1-2的业务数据划分内存空间。如从业务1的内存空间中删除一些业务数据,以便存储业务l-2的业务数据,此时根据为业务l配置的单元空间调度策略参数的取值进行内存调度,例如单元空间调度策略参数的取值为1,表示先进先出策略,或者取值为2,表示最近最少使用(LRU)策略等。继续步骤309。步骤309:按照为业务1配置的数据读取策略(即按照为业务1配置的数据读取策略参数的取值),从主存中读取业务1-2的业务数据,并保存在该内存空间中。通过以上描述了解了内存调度的实现过程,该过程可由一种装置实现,参见图4所示,本实施例提供一种用于内存调度的内存调度装置400,其包括运行模块401和调度模块404。运行模块401用于运行与用户请求的业务的种类对应的Cache实例;调度模块404,用于根据预先为所述种类的业务配置的调度参数的值对内存进行调度。调度模块404包括单元空间划分模块、单元空间调度模块、单元空间管理模块和数据读取模块。单元空间划分模块,用于根据单元空间划分策略参数的值进行单元空间的划分;单元空间调度模块,用于根据单元空间调度策略参数的值删除内存中的业务数据;单元空间管理模块,用于根据单元空间管理策略参数的值为业务分配内存空间;数据读取模块,用于根据数据读取策略参数的值对业务数据进行读取。其中,单元空间管理模块根据单元空间管理策略参数的不同取值,具体用于按内存中业务的种类的数量对内存进行平均分配;或者,按所述种类业务在主存中所占的存储比例为该业务分配内存;或者,按主存中存储的业务的种类及各种类业务的存储比例对内存进行分配;或者,按用户请求的所述种类业务的业务数据的大小,为该种类业务分配内存空间。该内存调度装置400还包括用户接口模块402,参见图5所示,该用户接口模块402用于接收用户的业务请求,获知用户请求的业务及业务的种类,以及向用户返回请求的业务的业务数据。该内存调度装置400还包括主存接口模块403,该主存接口模块403用于访问主存,包括对主存进行读/写操作。参见图6,本实施例中的存储系统包括内存601和内存调度装置400。内存601,用于存储业务数据等。内存调度装置400用于运行与用户请求的业务的种类对应的Cache实例,以及通过所述Cache实例,根据预先为所述种类的业务配置的调度参数的值对内存进行调度。用于实现本发明实施例的软件可以存储于软盘、硬盘、光盘和闪存等存储介质。本发明实施例为每种业务建立一个Cache实例,通过不同的Cache实例来实现对不同种类业务的适应性调度,较佳的,根据每种业务的特点采用与其适应的调度策略,从而优化了内存调度方式,提高内存资源的使用率和处理数据的速度。本发明实施例在某种业务适合多种调度策略的情况下从中一种进行调度,尤其是根据当前内存的存储情况或历史访问情况的统计结果选择一种调度策略进行调度。以及,本发明实施例可根据历史访问情况的统计结果,对各业务进行内存调度,以适应访问情况的实时变化,进一步优化内存调度策略。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若对本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。权利要求1.一种内存调度方法,其特征在于,包括以下步骤:运行与用户请求的业务的种类对应的内存内存实例;通过所述内存实例,根据预先为所述种类的业务配置的调度参数的值对内存进行调度。2、如权利要求1所述的内存调度方法,其特征在于,在进行内存调度过程中,获知内存中未对所述种类业务分配内存空间,则^l据调度参数为该种类业务分配内存空间。3、如权利要求2所述的内存调度方法,其特征在于,分配内存空间的方式包括按内存中业务的种类的数量对内存进行平均分配;或者按所述种类业务在主存中所占的存储比例为该业务分配内存;或者按主存中存储的业务的种类及各种类业务的存储比例对内存进行分配;或者按用户请求的所述种类业务的业务数据的大小,为该种类业务分配内存空间。4、如权利要求1所述的内存调度方法,其特征在于,调度参数包括单元空间划分策略参数、单元空间调度策略参数、单元空间管理策略参数和数据读取策略参数中的一项或多项。5、如权利要求4所述的内存调度方法,其特征在于,根据预先为所述种类的业务配置的调度参数的值对内存进行调度的步骤包括当所述调度参数中的一项参数的值不唯一时,对该项参数从中选择一个值并根据该值对内存进行调度。6、如权利要求1所述的内存调度方法,其特征在于,所述业务的种类包括流媒体业务、数据库业务、文件共享业务和网页浏览业务中的一种或多种。7、如权利要求1所述的内存调度方法,其特征在于,分别对每种业务的访问情况进行统计,根据统计结果调整为各业务配置的调度参数的值。8、一种用于内存调度的装置,其特征在于,包括运行模块,用于运行与用户请求的业务的种类对应的内存实例;调度模块,用于根据预先为所述种类的业务配置的调度参数的值对内存进行调度。9、如权利要求8所述的装置,其特征在于,所述调度模块至少包括下列模块之一单元空间划分才莫块,用于根据单元空间划分策略参数的值进行单元空间的划分;单元空间调度模块,用于根据单元空间调度策略参数的值删除内存中的业务数据;单元空间管理模块,用于根据单元空间管理策略参数的值为业务分配内存空间;数据读取模块,用于根据数据读取策略参数的值对业务数据进行读取。10、如权利要求9所述的装置,其特征在于,单元空间管理模块根据单元空间管理策略参数的不同取值,用于按内存中业务的种类的数量对内存进行平均分配;或者,按所述种类业务在主存中所占的存储比例为该业务分配内存;或者,按用户请求的所述种类业务的业务数据的大小,为该种类业务分配内存空间。11、一种存储系统,其特征在于,包括内存,用于存储业务数据;内存调度装置,用于运行与用户请求的业务的种类对应的内存实例,以及通过所述内存实例,根据预先为所述种类的业务配置的调度参数的值对内存进行调度。12、如权利要求ll所述的存储系统,其特征在于,内存调度装置包括运行模块,用于运行与用户请求的业务的种类对应的内存实例;调度模块,用于根据预先为所述种类的业务配置的调度参数的值对内存进行调度。13、如权利要求12所述的存储系统,其特征在于,所述调度模块至少包括下列模块之一单元空间划分模块,用于根据单元空间划分策略参数的值进行单元空间的划分;单元空间调度模块,用于根据单元空间调度策略参数的值删除内存中的业务数据;单元空间管理模块,用于根据单元空间管理策略参数的值为业务分配内存空间;数据读取模块,用于根据数据读取策略参数的值对业务数据进行读取。14、如权利要求13所述的存储系统,其特征在于,单元空间管理模块根据单元空间管理策略参数的不同取值,用于按内存中业务的种类的数量对内存进行平均分配;或者,按所述种类业务在主存中所占的存储比例为该业务分配内存;或者,按主存中存储的业务的种类及各种类业务的存储比例对内存进行分配;或者,按用户请求的所述种类业务的业务数据的大小,为该种类业务分配内存空间。全文摘要本发明公开了一种内存调度方法,用于实现内存(Cache)调度策略的优化,提高Cache资源的使用率和处理数据的速度。所述方法为运行与用户请求的业务的种类对应的Cache实例;通过所述Cache实例,根据预先为所述种类的业务配置的调度参数的值对Cache进行调度。本发明还公开了一种用于实现所述方法的装置和系统。文档编号G06F9/50GK101373445SQ20081021556公开日2009年2月25日申请日期2008年9月9日优先权日2008年9月9日发明者薛国良申请人:创新科存储技术(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1