一种io指令处理队列的优化方法及装置的制造方法

文档序号:9910620阅读:299来源:国知局
一种io指令处理队列的优化方法及装置的制造方法
【技术领域】
[0001]本发明涉及计算机技术领域,特别是涉及一种1指令处理队列的优化方法及装置。
【背景技术】
[0002]目前,伴随着整个IT行业的发展,每次新的技术出现,从硬件到软件大多数情况下都围绕着性能提升而展开。“摩尔定理”指出CPU的处理速度每18个月会翻一番,但是进入21世纪的第二个十年来,似乎它的速度慢了下来。但是各个IT行业领导者们,还是不断在计算机的性能寻求突破,继续挑战物理极限。具体到存储行业,每款新的存储产品的推出,也都是围绕着如何更快、更好的服务前端服务器的I/O请求为中心。
[0003]传统的1指令处理队列采用线性执行的方式,先到来的1指令会占用掉所有的线程,直到全部执行流程走完,后到来的1指令一定要等到前面的1指令执行完成才能进入执行流程,导致1指令延时增加,1指令处理效率太低,存储性能降低。并且在传统的1指令线性处理方式中当单个1发生阻塞时,阻塞的1指令只会占用所有的线程和资源,影响存储的整体运行。

【发明内容】

[0004]本发明的目的是提供一种1指令处理队列的优化方法及装置,以实现优化1指令处理流程,提高1指令处理效率。
[0005]为解决上述技术问题,本发明提供一种1指令处理队列的优化方法,该方法包括:
[0006]依据存储设备中SCSI Target的1指令处理流程的不同阶段,对1指令处理流程进行分段,得到不同阶段的1指令处理分段流程;
[0007]为每个1指令处理分段流程分配不同的处理线程;
[0008]对于每一个处理线程,在处理线程上执行完对应的1指令处理分段流程之后,释放处理线程所占用的资源。
[0009]优选的,所述不同阶段包括指令化处理阶段、解析阶段、内存分配阶段、数据接收阶段、本地执行阶段、返回数据阶段和返回结果阶段。
[0010]优选的,所述方法还包括:
[0011]对分配的所有的处理线程进行实时监控,根据处理线程的利用情况调整处理线程的数量。
[0012]优选的,所述方法还包括:
[0013]当1指令出现异常时,执行出现异常的1指令处理分段流程对应的处理线程,正常执行后续1指令。
[0014]优选的,所述方法还包括:
[0015]执行先到来的1指令,执行完每个阶段之后立即释放对应的处理线程,利用先到来的1指令释放的处理线程执行后到来的1指令的处理过程。
[0016]本发明还提供一种1指令处理队列的优化装置,该装置包括:
[0017]分段模块,用于依据存储设备中SCSITarget的1指令处理流程的不同阶段,对1指令处理流程进行分段,得到不同阶段的1指令处理分段流程;
[0018]分配模块,用于为每个1指令处理分段流程分配不同的处理线程;
[0019]释放模块,用于对于每一个处理线程,在处理线程上执行完对应的1指令处理分段流程之后,释放处理线程所占用的资源。
[0020]优选的,所述不同阶段包括指令化处理阶段、解析阶段、内存分配阶段、数据接收阶段、本地执行阶段、返回数据阶段和返回结果阶段。
[0021]优选的,所述装置还包括:
[0022]监控模块,用于对分配的所有的处理线程进行实时监控,根据处理线程的利用情况调整处理线程的数量。
[0023]优选的,所述装置还包括:
[0024]异常处理模块,用于当1指令出现异常时,执行出现异常的1指令处理分段流程对应的处理线程,正常执行后续1指令。
[0025]优选的,所述装置还包括:
[0026]指令执行模块,用于执行先到来的1指令,执行完每个阶段之后立即释放对应的处理线程,利用先到来的1指令释放的处理线程执行后到来的1指令的处理过程。
[0027]本发明所提供的一种1指令处理队列的优化方法及装置,依据存储设备中SCSITarget的1指令处理流程的不同阶段,对1指令处理流程进行分段,得到不同阶段的1指令处理分段流程;为每个1指令处理分段流程分配不同的处理线程;对于每一个处理线程,在处理线程上执行完对应的1指令处理分段流程之后,释放处理线程所占用的资源。可见,相对于传统的1指令处理队列线性执行的方式,本发明采用将1指令处理流程进行分段的方式,分别交由不同的线程去处理,同时每一个处理线程在执行完对应的1指令处理分段流程之后都释放处理线程所占用的资源,这时处理线程是可被利用的状态,如此后到来的1指令不需要等到前面的1指令执行完成才能进入执行流程,只要处理线程释放处理线程所占的资源,后到来的1指令就能利用释放资源的处理线程来执行处理过程,提高1指令处理效率,进而提升存储性能,所以实现优化1指令处理流程,提高1指令处理效率。
【附图说明】
[0028]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0029]图1为本发明所提供的一种1指令处理队列的优化方法的流程图;
[0030]图2为本发明所提供的一种1指令处理队列的优化装置的结构示意图。
【具体实施方式】
[0031]本发明的核心是提供一种1指令处理队列的优化方法及装置,以实现优化1指令处理流程,提高1指令处理效率。
[0032]为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0033]请参考图1,图1为本发明所提供的一种1指令处理队列的优化方法的流程图,该方法包括:
[0034]Sll:依据存储设备中SCSI Target的1指令处理流程的不同阶段,对1指令处理流程进行分段,得到不同阶段的1指令处理分段流程;
[0035]其中,所述不同阶段包括指令化处理阶段、解析阶段、内存分配阶段、数据接收阶段、本地执行阶段、返回数据阶段和返回结果阶段。
[0036]需要将SCSITarget的1指令处理流程进行分段。分段依据是SCSI指令执行的不同阶段,包括指令处理化,解析,内存分配,数据接收,本地执行,返回数据,返回结果等阶段。对处理流程的划分,可以增加SCSI指令的管理粒度,方便对1指令进行管理,提高1指令处理效率。
[0037]S12:为每个1指令处理分段流程分配不同的处理线程;
[0038]其中,对1指令的处理流程进行分段之后,可以为这些不同阶段分别分配一定数量的处理线程,不同线程各自组织自己独特的处理函数。
[0039]S13:对于每一个处理线程,在处理线程上执行完对应的1指令处理分段流程之后,释放处理线程所占用的资源。
[0040]其中,线程之间独立的申请和使用资源,线程处理完各自的阶段之后释放相应的资源。
[0041]可见,相对于传统的1指令处理队列线性执行的方式,该方法采用将1指令处理流程进行分段的方式,分别交由不同的线程去处理,同时每一个处理线程在执行完对应的1指令处理分段流程之后都释放处理线程所占用的资源,这时处理线程是可被利用的状态,如此后到来的1指令不需要等到前面的1指令执行完成才能进入执行流程,只要处理线程释放处理线程所占的资源,后到来的1指令就能利用释放资源的处理线程来执行处理过程,提高1指令处理效率,进而提升存储性能,所以实现优化1指令处理流程,提高1指令处理效率。
[0042]而且,处理流程的划分,可以增加SCSI指令的管理粒度,方便对1指令进行管理,提高1指令处理效率。同时,1指令处理流程分段处理的方式,还可以起到提升读写性能,平衡大块读写性能的效果。
[0043]需要说明的是,本发明主要针对服务器和存储设备的1交互和存储设备中的1处理流程,本发明所指的1指令处理流程特指服务器与存储之间使用SCSI协议进行数据交互时的1指令的处理流程,优化的对象是存储设备中SCSI Target的1处理队列即1指令处理流程,本发明是为提高存储性能而做的针对SCSI Target的优化。
[0044]优选的,上述方法还包括以下步骤:
[0045]S21:对分配的所有的处理线程进行实时监控,根据处理线程的利用情况调整处理线程的数量。
[0046]其中,同时可以监控系统中各种线程的利用情况,根据线程资源是否紧张来调整线程的数量,减少闲置率比较高的线程,增加利用率比较高的线程。线程的动态分配,可以有效提高系统资源的利用率,进而达到提供存储系统性能的目的。
[0047]通过将1指令处理流程进行分段,并分别交由不同的线程去处理,同时动态调整处理不同阶段1指令的线程数量及优先级,达到优化1指令处理流程,提高1指令处理效率,进而起到提高存储性能的作用。线程的动态分配可以有效提高系统资源的利用率,进而达到提供存储系统性能的目的。
[0048]上述方法还包括以下步骤:
[0049]S31:当1指令出现异常时,执行出现异常的1指令处理分段流程对应的处理线程,正常执行后续1指令。
[0050]其中,采取1指令分段处理方式,可以有效控制异常1对系统整体的影响。在传统的1指令线性处理方式中,
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1