一种优化处理资源的方法及装置的制造方法

文档序号:10624649阅读:352来源:国知局
一种优化处理资源的方法及装置的制造方法
【专利摘要】本发明提供了一种优化处理资源的方法及装置,包括:将数据按照磁盘阵列Raid条带进行划分,划分后的数据子集分别分派到不同的CPU进行处理并分派到与之对应的CPU的专用cache中;分别将所述划分后的数据子集绑定到所述与之对应的CPU的线程中异步执行,并将划分后的数据保存到所述CPU的专用cache中。本发明以均衡和减少冲突为原则达成的优化处理资源的方法及装置,具有很高的IOPS吞吐能力,资源使用平衡,不冲突,因为顶层设计清晰,系统具有很好的可靠性和扩展性。
【专利说明】
一种优化处理资源的方法及装置
技术领域
[0001]本发明涉及计算机技术领域,尤其涉及一种优化处理资源的方法及装置。
【背景技术】
[0002]存储系统的软件框架设计,一般来说有很多种技术,比如:
[0003]1.工作线程组
[0004]2.线程CPU绑定
[0005]3.异步工作队列
[0006]4.预分配内存池
[0007]在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
[0008]1.只是简单的使用多种流行技术,没有统一的策略指导,没有有机的综合;比如工作线程组,没有对数据进行拆分,则需要处理多线程访问共享数据的带来的问题(资源加锁,造成spirulock冲突或者mutex线程切换)。这种问题不是处理逻辑引入(比如异步分布式1锁是逻辑引入),而是数据处理方式引入,本可以避免。若不规避这些问题,在要求极高的1PS条件下,会因为锁冲突、线程切换等原因导致1PS性能瓶颈。
[0009]2.没有从整体上对CPU资源,内存资源做划分,绑定,导致资源使用没有最优化甚至冲突,降低性能。

【发明内容】

[0010]为解决上述技术问题,本发明提出了一种优化处理资源的方法及装置,该方法以访问局部化,资源平均化为原则实现分布式处理框架,提高存储系统1PS性能。
[0011]本发明提供了一种优化处理资源的方法,该方法包括:
[0012]将数据按照磁盘阵列Raid条带进行划分,划分后的数据子集分别分派到不同的CPU进行处理并分派到与之对应的CPU的专用cache中;
[0013]分别将所述划分后的数据子集绑定到所述与之对应的CPU的线程中异步执行,并将划分后的数据保存到所述CPU的专用cache中。
[0014]优选地,所述将数据按照Raid条带进行划分之前还包括:
[0015]获取所述数据的Raid条带占用信息。
[0016]优选地,所述线程设有与之对应的页内存管理。
[0017]优选地,所述线程对保存在之对应的CPU的专用cache中的数据采用无并发的单线程数据处理模式进行数据处理。
[0018]优选地,所述方法还包括:
[0019]将当前没有进行数据子集绑定的CPU设置为冗余CPU。
[0020]相应的,本发明还提出了一种优化处理资源的装置,所述装置包括:
[0021]数据拆分模块,用于将数据按照磁盘阵列Raid条带进行划分,划分后的数据子集分别分派到不同的CPU进行处理并分派到与之对应的CPU的专用cache中;
[0022]资源绑定模块,用于分别将所述划分后的数据子集绑定到所述与之对应的CPU的线程中异步执行,并将划分后的数据保存到所述CPU的专用cache中。
[0023]优选地,所述装置还包括:
[0024]获取模块,用于在将数据按照Raid条带进行划分之前,获取所述数据的Raid条带占用?目息O
[0025]采用本发明提出的一种优化处理资源的方法及装置,通过数据拆分,相当于先对数据做了均衡的Hash,将大数据拆分为小数据分而治之;资源绑定,将多线程并发处理模型简化为单线程数据处理模型;从顶层整体分配所有资源(CPU资源和内存资源),以均衡和减少冲突为原则达成的存储系统,具有很高的1PS吞吐能力,资源使用平衡,不冲突,因为顶层设计清晰,系统具有很好的可靠性和扩展性。
【附图说明】
[0026]通过参考附图会更加清楚的理解本发明的特征和优点,附图是示意性的而不应理解为对本发明进行任何限制,在附图中:
[0027]图1为本发明实施例一提出的一种优化处理资源的方法流程图;
[0028]图2为本发明实施例中提出的拆分b1的流程图;
[0029]图3为本发明实施例二提出的一种优化处理资源的装置模块图。
【具体实施方式】
[0030]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0031]存储系统要具有极高的1PS能力,并且支持双控乃至集群,必须分布式并行处理,降低数据访问冲突、资源占用冲突,将访问局部化,资源平均化。在系统框架设计上,很好的用以上原则融合多种技术的设计框架,才是好的框架。
[0032]图1为本发明实施例一提出的一种优化处理资源的方法流程图,如图1所示,该方法包括以下步骤:
[0033]S101,将数据按照磁盘阵列Raid条带进行划分,划分后的数据子集分别分派到不同的CPU进行处理并分派到与之对应的CPU的专用cache中;
[0034]S102,分别将所述划分后的数据子集绑定到所述与之对应的CPU的线程中异步执行,并将划分后的数据保存到所述CPU的专用cache中。
[0035]其中,线程对保存在之对应的CPU的专用cache中的数据采用无并发的单线程数据处理模式进行数据处理。本发明实施例中,线程要处理的数据是自己独有的,所以数据处理模式是单线程,不用考虑并发访问数据。
[0036]本发明实施例中,在所述将数据按照Raid条带进行划分之前,本方法还包括:
[0037]获取所述数据的Raid条带占用信息。
[0038]其中,所述线程设有与之对应的页内存管理,每个Per_CPU work有本地化的页内存管理。
[0039]本发明实施例中,所述方法还包括:
[0040]将当前没有进行数据子集绑定的CPU设置为冗余CPU,将剩余的CPU核用于系统中其他上层模块。
[0041]本发明实现的构架方案如下:
[0042]1.数据拆分
[0043]将数据按照Raid条带进行划分,分派到不同的CPU核(可扩展到双控制器乃至集群)上去处理(CPU资源),分派到不同的CPU的专用cache即Per_CPU cache中(内存资源)。
[0044]数据拆分相当于先对数据做了均衡的Hash,将大数据拆分为小数据分而治之。
[0045]2.资源绑定
[0046]将拆分后的数据子集(sub_1)分派(绑定)到某个CPU核的Per_CPU work中异步执行,存储到CPU对应的Per_CPU cache中。
[0047]这样,每个CPU核的Per_CPU work都有自己局部化的内存资源Per_CPU cache (以及Per_CPU页内存管理);Per_CPU work都是无并发的单线程模型。
[0048]资源绑定后自然达成的好的效果是,将多线程并发处理模型简化为单线程数据处理模型。
[0049]本发明实施例的具体工作流程,如下:
[0050]1.将双控通讯设定到一个真CPU核心上执行;
[0051]2.将异步双控范围锁(包括1锁和条带锁)设定到一个真CPU核心上执行;
[0052]3.将cache的1处理,产生flush 1等work设定到一组CPU核心上执行;
[0053]外部的10拆分到双控的每个cache Per_CPU work上执行;flush在每个Per_CPU本地产生;
[0054]4.将Raid的10处理等work设定到一组CPU核心上执行,与cache有M比N的关系;
[0055]5.剩余CPU核用于系统中其他上层模块;
[0056]6.每个Per_CPU work有本地化的页内存管理。
[0057]图2为拆分b1的流程图,具体包括:
[0058]初始化task_array、start_pos等信息;获取cache的条带大小;
[0059]遍历next_range,将b1拆分为pcpu_b1_task,并初始化,放入局部变量task_array ψ ;
[0060]出现错误则根据task_array 数组 rollback 所有 pcpu_b1_task ;
[0061]无错误则将task_array中所有pcpu_b1_task放入对应的pcpu_work中执行。
[0062]其中,task_array是任务数组,pcpu_b1_task是每CPU的b1任务,b1是存储系统中专用的数据,保存了一个数据块的访问请求的所有信息。
[0063]图3为本发明实施例二提出的一种优化处理资源的装置模块图,如图3所示,该装置包括:
[0064]数据拆分模块301,用于将数据按照磁盘阵列Raid条带进行划分,划分后的数据子集分别分派到不同的CPU进行处理并分派到与之对应的CPU的专用cache中;
[0065]资源绑定模块302,用于分别将所述划分后的数据子集绑定到所述与之对应的CPU的线程中异步执行,并将划分后的数据保存到所述CPU的专用cache中。
[0066]本发明实施例中所述的优化处理资源的装置还包括:
[0067]获取模块,用于在将数据按照Raid条带进行划分之前,获取所述数据的Raid条带占用?目息O
[0068]本发明提出的一种优化处理资源的方法及装置取得了以下有益效果:
[0069]1.设计达成的存储系统,具有很高的1PS吞吐能力;
[0070]2.资源使用平衡,不冲突;
[0071]3.因为顶层设计清晰,系统具有很好的可靠性和扩展性。
[0072]通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
[0073]本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
[0074]以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。
【主权项】
1.一种优化处理资源的方法,其特征在于,所述方法包括: 将数据按照磁盘阵列Raid条带进行划分,划分后的数据子集分别分派到不同的CPU进行处理并分派到与之对应的CPU的专用cache中; 分别将所述划分后的数据子集绑定到所述与之对应的CPU的线程中异步执行,并将划分后的数据保存到所述CPU的专用cache中。2.根据权利要求1所述的方法,其特征在于,所述将数据按照Raid条带进行划分之前还包括: 获取所述数据的Raid条带占用信息。3.根据权利要求1所述的方法,其特征在于,所述线程设有与之对应的页内存管理。4.根据权利要求1所述的方法,其特征在于,所述线程对保存在之对应的CPU的专用cache中的数据采用无并发的单线程数据处理模式进行数据处理。5.根据权利要求1所述的方法,其特征在于,所述方法还包括: 将当前没有进行数据子集绑定的CPU设置为冗余CPU。6.一种优化处理资源的装置,其特征在于,所述装置包括: 数据拆分模块,用于将数据按照磁盘阵列Raid条带进行划分,划分后的数据子集分别分派到不同的CPU进行处理并分派到与之对应的CPU的专用cache中; 资源绑定模块,用于分别将所述划分后的数据子集绑定到所述与之对应的CPU的线程中异步执行,并将划分后的数据保存到所述CPU的专用cache中。7.根据权利要求6所述的装置,其特征在于,所述装置还包括: 获取模块,用于在将数据按照Raid条带进行划分之前,获取所述数据的Raid条带占用?目息O
【文档编号】G06F9/50GK105988873SQ201510058673
【公开日】2016年10月5日
【申请日】2015年2月4日
【发明人】王俊
【申请人】北京神州云科数据技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1