一种I/O请求处理方法以及装置与流程

文档序号:15384443发布日期:2018-09-08 00:24阅读:301来源:国知局

本申请涉及分布式技术领域,具体而言,涉及一种io请求处理方法以及装置。



背景技术:

计算机通过文件系统管理、存储数据,而信息爆炸时代中人们可以获取的数据成指数倍的增长,分布式文件系统可以有效解决数据的存储和管理难题,其将固定于某个地点的某个文件系统,扩展到任意多个地点的多个文件系统,组成一个文件系统网络。人们在使用分布式文件系统时,无需关心数据是存储在哪个存储节点上、或者是从哪个存储节点从获取的,只需要像使用本地文件系统一样管理和存储文件系统中的数据。

分布式文件系统中,所有用户设备都可以对分布式文件系统中的文件进行输入/输出(input/output,i/o)操作。当集群中的节点频繁进行i/o操作时,会导致磁盘处于繁忙状态,甚至造成磁盘过载。

申请内容

有鉴于此,本申请实施例的目的在于提供一种io请求处理方法以及装置,能够降低磁盘压力。

第一方面,提供一种i/o请求处理方法,应用于分布式文件系统,包括:

根据分布式文件系统对输入输出i/o请求的处理情况,计算延迟时间长度;所述延迟时间长度为最近一次将i/o请求放入待处理队列的时间与下一次将i/o请求放入待处理队列的时间之间的时间间隔;

当接收到任一用户设备发起的i/o请求时,检测接收到所述i/o请求的当前时间与最近一次将i/o请求放入待处理队列的时间之间的时间间隔是否不小于所述延迟时间长度;

如果是,则将当前接收到的所述i/o请求放入待处理队列,以便所述分布式文件系统对所述i/o请求进行响应;

如果否,则不将当前接收到的所述i/o请求放入待处理队列。

第二方面,提供一种i/o请求处理装置,应用于分布式文件系统,包括:

计算模块,用于根据分布式文件系统对输入输出i/o请求的处理情况,计算延迟时间长度;所述延迟时间长度为最近一次将i/o请求放入待处理队列的时间与下一次将i/o请求放入待处理队列的时间之间的时间间隔;

确定模块,用于当接收到任一用户设备发起的i/o请求时,检测接收到所述i/o请求的当前时间与最近一次将i/o请求放入待处理队列的时间之间的时间间隔是否不小于所述延迟时间长度;

处理模块,用于在确定模块的输出结果为是时,将当前接收到的所述i/o请求放入待处理队列,以便所述分布式文件系统对所述i/o请求进行响应;以及在确定模块的输出结果为否时,不将当前接收到的所述i/o请求放入待处理队列。

本申请实施例中,延迟时间长度是根据分布式文件系统对i/o请求的处理情况计算得到的,当分布式文件系统负载大时,该延迟时间长度就长,将接收到的i/o请求放入待处理队列的速度就慢,实现了对i/o请求的限流;进入分布式文件系统的i/o请求越少,则分布式文件系统的处理压力也就越小,从而减少分布式文件系统出现过载的情况,减少分布式文件系统对i/o请求的响应时间过长导致的业务出现的i/o超时的问题;当分布式文件系统负载小时,沿延迟时间长度就短,将接收到的i/o请求放入待处理队列的速度就快,进入分布式文件系统i/o请求越多,提升分布式文件系统的处理效率。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1示出了相关技术中一种解决分布式文件系统负载压力过大问题的方法示意图;

图2示出了本申请实施例所提供的i/o请求处理方法的流程示意图;

图3示出了本申请实施例所提供的i/o请求处理方法中,一种计算延迟时间长度的具体方法流程图;

图4示出了本申请实施例所提供的i/o请求处理方法中,磁盘中待处理i/o请求的数量与延迟时间长度之间的关系示意图;

图5示出了本申请实施例所提供的i/o请求处理方法中,另一种计算延迟时间长度的具体方法流程图;

图6示出了本申请实施例所提供的一种i/o请求处理装置的结构示意图;

图7示出了本申请实施例所提供的另一种i/o请求处理装置的结构示意图。

具体实施方式

在相关技术中,用户设备在对分布式文件系统中的文件进行i/o操作时,需要向分布式文件系统发送i/o请求;分布式文件系统根i/o请求,将数据持久化到磁盘中,将数据保存下来;分布式文件系统在某时刻处理的i/o请求越多,磁盘负载也就越大;一旦磁盘达到处理瓶颈,会导致分布式文件系统中的i/o请求无法得到及时处理,造成待处理队列中的i/o请求阻塞。同时,分布式文件系统由多台主机组成,多台主机之间通过网路互相通信,而不同的文件系统之间的信息交互需要通过网卡实现;一旦待处理队列中的i/o请求过多,使得网卡达到处理瓶颈,位于不同位置的文主机之间的信息交互无法顺利完成,也会造成i/o请求在分布式文件系统中的阻塞。另外,当待处理队列中的i/o请求过多时,会导致分布式文件系统的系统资源达到处理瓶颈,从而会造成i/o请求在分布式文件系统中的阻塞。

如图1所示,为相关技术中一种解决分布式文件系统负载压力过大问题的方法示意图,在该技术中,分布式文件系统会创建一个任务队列;分布式文件系统在接收到用户设备发送的i/o请求后,并不会马上处理该i/o请求,而是将i/o请求放入所创建的任务队列中,然后由后台的任务处理线程根据磁盘对i/o请求的处理情况,按照先进先出的方式从任务队列中获取i/o请求进行处理。当分布式文件系统的处理压力过大的时候,任务处理线程可以降低从任务队列中获取i/o请求的速度,缓解分布式文件系统的处理压力;当分布式文件系统的压力较小的时候,任务处理线程可以加快从任务队列中获取i/o请求的速度,加快i/o处理的响应速度。任务队列在分布式文件系统中起到了缓冲调节的作用,能够在一定程度上降低分布式文件系统的处理压力。

但是实际上,现有技术中虽然在一定程度上降低了分布式文件系统的处理压力,但是如果当前分布式文件系统接收到的i/o请求过多,i/o请求会不断的加入到任务队列中,导致分布式文件系统不断从任务队列中取出i/o请求进行处理,增加处理压力。

本申请实施例中,通过延迟时间长度限制放入待处理队列的i/o请求的速度,当分布式文件系统负载较大时,减缓将i/o请求放入待处理队列的速度,从而缓解分布式文件系统的处理压力。

为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请做进一步详细的说明。在本申请实施例中,执行i/o请求处理方法的主体为分布式文件系统,用于控制对用户设备发起的i/o请求的响应。

参见图2所示,本申请实施例一所提供的i/o请求处理方法包括以下步骤:

s201:根据分布式文件系统对输入输出i/o请求的处理情况,计算延迟时间长度;延迟时间长度为最近一次将i/o请求放入待处理队列的时间与下一次将i/o请求放入待处理队列的时间之间的时间间隔。

在具体实现的时候,将i/o请求放入待处理队列,是指将从分布式文件系统连接用户设备的接口接收到的i/o请求作为待处理i/o请求进行处理,而并非是将i/o请求放入一个预先建立好的队列。

分布式文件系统对i/o请求的处理情况可以采用多种信息中至少一种进行衡量,例如采用分布式文件系统中待处理i/o请求的数量,单位时间内接收到的i/o请求数量与进行响应的i/o请求数量的比值、预设时间长度内对i/o请求进行响应的平均响应时长等。

无论采用哪种信息衡量分布式文件系统对i/o请求的处理情况,由于分布式文件系统对i/o请求的处理情况是在一直变化中的,每有新的i/o请求被放入待处理队列进行处理,或者在待处理队列中的i/o请求被处理完毕并响应给用户设备,分布式文件系统对i/o请求的处理情况都会发生变化,因此,需根据分布式文件系统对i/o请求的处理情况的变化动态计算延迟时间长度。

在本申请一实施例中,当分布式文件系统对i/o请求的处理情况包括分布式文件系统中待处理i/o请求的数量时,根据分布式文件系统对输入输出i/o请求的处理情况,计算延迟时间长度,具体包括:

根据分布式文件系统的中待处理i/o请求的数量以及预设的延迟系数,计算延迟时间长度。

此处,可以在分布式文件系统连接用户设备的接口中加入数量统计函数,该数量统计函数用于对分布式文件系统中待处理的i/o请求数量进行统计,也即,每将一个i/o请求放入待处理队列,就将当前分布式文件系统中待处理的i/o请求数量加1,每向用户设备返回一个i/o请求的响应,就将当前分布式文件系统中待处理的i/o请求数量减1。

延迟时间长度为最近一次将i/o请求放入待处理队列的时间与下一次将i/o请求放入待处理队列的时间之间的时间间隔,延迟时间长度越大,则说明分布式文件系统将新接收到的i/o请求放入到待处理队列中的速度就越慢。由于分布式文件系统中待处理i/o请求的数量越多,分布式文件系统的负载也就越大,因此为了避免分布式文件系统出现过载情况,减少分布式文件系统对i/o请求的响应延迟时间,分布式文件系统中待处理i/o请求的数量越多,将新接收到的i/o请求放入待处理队列的速度也就越慢,因此也就要求延迟时间长度越长,也即对放入待处理队列的i/o请求进行限流。

因此,可以设置预设的延迟系数,该延迟系数一般为大于1的数值,作用为使得分布式文件系统中待处理i/o请求的数量与延迟时间长度成正相关性。

具体地,根据分布式文件系统的中待处理i/o请求的数量以及预设的延迟系数,计算延迟时间长度有下述两种:

1、每当分布式文件系统的中待处理i/o请求的数量发生变化的时候,也即,每将一个新的i/o请求放入待处理队列中,或者每向用户设备返回一个i/o请求的响应时,都会根据变化后的待处理i/o请求的数量,以及预设的延迟系数,计算延迟时间长度。这样可以及时的掌握分布式文件系统对i/o请求的处理情况,并及时对延迟时间长度进行调整。

2、每隔预设时间间隔计算一次延迟时间长度,也即,当分布式文件系统的中待处理i/o请求的数量发生变化的时候,采用数量统计函数对分布式文件系统中待处理i/o请求的数量进行统计,但并不会马上使用变化后的待处理i/o请求的数量计算延迟时间长度,而是在与最近一次计算延迟时间长度的时间间隔为预设时间间隔的时间到达时,再根据该时间到达时分布式文件系统的中待处理i/o请求的数量计算延迟时间长度。这样可以避免分布式文件系统对i/o请求的处理情况频繁发生变化时,需要不断的对延迟时间长度进行调整所造成的计算量大,耗费较多计算资源的问题。

另外,参见图3所示,本申请实施例还提供一种根据分布式文件系统的中待处理i/o请求的数量以及预设的延迟系数,计算延迟时间长度的具体方法,包括:

s301:在预先设定的多个数量范围中,确定待处理i/o请求的数量所处的数量范围;其中,不同数量范围对应有不同的延迟系数,且数量范围中的数值越大,该数量范围对应的延迟系数越大。

s302:根据分布式文件系统的中待处理i/o请求的数量,以及与确定的数量范围对应的延迟系数,计算延迟时间长度。

在具体实现的时候,并非是在任何情况下对放入待处理队列中的i/o请求进行延迟系数一致的限流。如果当分布式文件系统的负载很小的时候,分布式文件系统此时远未达到其处理能力上线,因此不需要对i/o请求进行限流的,此时可以将延迟系数设置为0;当分布式文件系统的负载适中,分布式文件系统处于繁忙状态,但未达到过载情况时,可以对i/o请求进行慢速限流,随着分布式文件系统中i/o请求数量的增多,延迟时间长度低速增加;当分布式文件系统的负载较大的时候,就要对i/o请求进行快速限流,也即随着放入待处理队列的i/o请求数量的增多,延迟时间长度快速增长。

因此,会预设多个不同的数量范围,不同的数量范围对应有不同的延迟系数,且数量范围中的数值越大,该数量范围对应的延迟系数越大。

在计算延迟时间长度的时候,可以首先确定分布式文件系统中待处理i/o请求的数量所处的数量范围,然后根据分布式文件系统中待处理i/o请求的数量,以及与确定的数量范围对应的延迟系数,计算延迟时间长度。

例如,假设设置有三个数量范围,分别为:(0,nlow]、(nlow,nhigh)以及[nhigh,+∞)。数量范围(0,nlow]对应的延迟系数为0;数量范围(nlow,nhigh)对应的延迟系数为1.2;延迟范围[nhigh,+∞)对应的延迟系数为1.7。

当确定分布式文件系统中待处理i/o请求的数量所处的数量范围为(0,nlow]时,此时延迟时间长度为0,也即,当分布式文件系统中待处理i/o请求的数量小于nlow时,不对接收到的i/o请求进行限流,下一任意时刻只要接收到i/o请求,就将接收到的i/o请求放入待处理队列中。当确定分布式文件系统中待处理i/o请求的数量所处的数量范围为(nlow,nhigh)时,使用分布式文件系统中待处理i/o请求的数和延迟系数1.2计算延迟时间长度;当确定分布式文件系统中待处理i/o请求的数量所处的数量范围为[nhigh,+∞)时,使用分布式文件系统中待处理i/o请求的数量和延迟系数1.7计算延迟时间长度,最终的所形成的分布式文件系统中待处理i/o请求的数量与延迟时间长度之间的关系参见图4所示,当分布式文件系统中待处理i/o请求的数量小于或者等于nlow时,不对接收到的i/o请求进行限流;当分布式文件系统中待处理i/o请求的数量大于nlow并且小于nhigh时,对接收到的i/o请求进行限流较慢速度的限流,此时,随着分布式文件系统中待处理i/o请求的数量的不断增加,延迟时间长度缓慢增加;当分布式文件系统中待处理i/o请求的数量不小于nhigh时,对接收到的i/o请求进行限流较快速度的限流,此时,随着分布式文件系统中待处理i/o请求的数量的不断增加,延迟时间长度快速增加,从而通过限制进入分布式文件系统理i/o请求的数量,达到缓解分布式文件系统负载压力的效果。

在本申请另一实施例中,当分布式文件系统对i/o请求的处理情况包括预设时间长度内对i/o请求进行响应的平均响应时长时,根据分布式文件系统对输入输出i/o请求的处理情况,计算延迟时间长度,具体包括:

根据平均响应时长以及预设的延迟系数,计算延迟时间长度。

此处,可以在分布式文件系统连接用户设备的接口中加入平均响应时间计算函数,该平均响应时间计算函数用于计算在预设时间长度内,分布式文件系统对i/o请求进行响应的平均响应时长。

该平均响应时长越小,则说明分布式文件系统的负载压力越小;平均响应时长越大,则说明分布式文件系统的负载压力越大。因此,平均响应时长越小,则延迟时间长度越小;平均响应时长越大,则延迟时间长度越大。由此,可以设置预设的延迟系数,该延迟系数一般为大于1的数值,作用为使得平均响应时长与延迟时间长度成正相关性。

参见图5所示,本申请实施例还提供一种根据分布式文件系统的中待处理i/o请求的数量以及预设的延迟系数,计算延迟时间长度的具体方法。该方法包括:

s501:在预先设定的多个响应时长范围中,确定平均响应时长所处的响应时长范围;其中,不同响应时长范围对应有不同的延迟系数,且响应时长范围中的响应时长越长,该响应时长范围对应的延迟系数越大;

s502:根据平均响应时长,以及与确定的响应时长范围对应的延迟系数,计算延迟时间长度。

在具体实现的时候,并非是在任何情况下对放入待处理队列中的i/o请求进行延迟系数相同的限流。如果当分布式文件系统的负载很小的时候,分布式文件系统此时远未达到其处理能力上线,因此不需要对i/o请求进行限流的,此时可以将延迟系数设置为0;当分布式文件系统的负载适中,分布式文件系统处于繁忙状态,但未达到过载情况时,可以对i/o请求进行慢速限流,随着平均响应时长的增加,延迟时间长度低速增加;当分布式文件系统的负载较大的时候,就要对i/o请求进行快速限流,也即随着平均响应时长的增加,延迟时间长度快速增长。

因此,会预设多个不同的响应时长范围,不同的响应时长范围对应有不同的延迟系数,且数量范围中的数值越大,该数量范围对应的延迟系数越大。

在计算延迟时间长度的时候,可以首先确定平均响应时长所处的响应时长范围,然后根据平均响应时长,以及与确定的响应时长范围对应的延迟系数,计算延迟时间长度。

例如,假设设置有三个响应时长范围,分别为:(0,tlow]、(tlow,thigh)以及[thigh,+∞)。响应时长范围(0,tlow]对应的延迟系数为0;响应时长范围(tlow,nhigh)对应的延迟系数为1.5;响应时长范围[thigh,+∞)对应的延迟系数为2.1。

当确定平均响应时长所处的响应时长范围为(0,tlow]时,此时延迟时间长度为0,也即,当平均响应时长小于tlow时,不对接收到的i/o请求进行限流,下一任意时刻只要接收到i/o请求,就将接收到的i/o请求放入待处理队列中。当确定平均响应时长所处的响应时长范围为(tlow,thigh)时,使用平均响应时长和延迟系数1.5计算延迟时间长度;当确定平均响应时长所处的响应时长范围为[thigh,+∞)时,使用平均响应时长和延迟系数2.1计算延迟时间长度,最终的所形成的平均响应时长与延迟时间长度之间的关系类似于图4,也即,当平均响应时长小于或者等于tlow时,不对接收到的i/o请求进行限流;当平均响应时长大于tlow并且小于thigh时,对接收到的i/o请求进行限流较慢速度的限流,此时,随着平均响应时长的不断增加,延迟时间长度缓慢增加;当平均响应时长不小于thigh时,对接收到的i/o请求进行限流较快速度的限流,此时,随着平均响应时长的不断增加,延迟时间长度快速增加,从而通过限制进入分布式文件系统理i/o请求的数量,达到缓解分布式文件系统负载压力的效果。

另外,当分布式文件系统对输入输出i/o请求的处理情况包括单位时间内接收到的i/o请求数量与进行响应的i/o请求数量的比值类似于上述两种情况,在此不再赘述。

s202:接收任一用户设备发起的i/o请求;

s203:检测接收到i/o请求的当前时间与最近一次将i/o请求放入待处理队列的时间之间的时间间隔是否不小于延迟时间长度。如果是,则执行s204;如果否,则执行s205。

在具体实现的时候,每次在将i/o请求放入待处理队列之后,都会记录将i/o请求放入待处理队列的时间。当接收到任一用户设备发起的i/o请求后,会检测接收到该i/o请求的当前时间t2,与所记录的最近一次将i/o请求放入待处理队列的时间t1之间的时间间隔是否不小于当前时间对应的延迟时间长度。

在检测t2和t1之间的时间间隔是否不小于当前时间对应的延迟时间长度时,可以采用将t2和t1相减,并将相减的结果与此时的延迟时间长度进行比对的方法实现。如果t2和t1相减的结果,不小于延迟时间长度,则t2和t1之间的时间间隔不小于当前时间对应的延迟时间长度。如果t2和t1相减的结果,小于延迟时间长度,则t2和t1之间的时间间隔小于当前时间对应的延迟时间长度。

另外,还可以设置一时钟,每次在将i/o请求放入待处理队列后,都会使用将i/o请求放入待处理队列时所对应的延迟时间长度对时钟进行赋值。当时钟计时归零时,才允许分布式文件系统连接用户设备的接口将接收到的i/o请求放入待处理队列中。也即,当时钟计时归零时,可以触发一允许将接收到的i/o请求放入待处理队列的指令,此时才可以将新接收到的i/o请求放入待处理队列;当分布式文件系统连接用户设备的接口将接收到的i/o请求放入待处理队列后,在使用延迟时间长度对时钟进行赋值的同时,还会触发一不允许将接收到的i/o请求放入待处理队列的指令,此时不可以将新接收到的i/o请求放入待处理队列。

s204:将当前接收到的i/o请求放入待处理队列,以便分布式文件系统对i/o请求进行响应。

s205:不将当前接收到的所述i/o请求放入待处理队列。

在具体实现的时候,在检测接收到i/o请求的当前时间与最近一次将i/o请求放入待处理队列的时间之间的时间间隔小于延迟时间长度的时候,不将当前接收到的所述i/o请求放入待处理队列。根据具体应用环境,虽然不将当前接收到的i/o请求放入待处理队列的操作,但可进一步地执行向发起i/o请求的设备反馈无法操作的信息,或将该i/o请求丢弃(对应地发起i/o请求的一侧可做超时容错处理),或缓存处理等操作。

此处,在检测接收到i/o请求的当前时间与最近一次将i/o请求放入待处理队列的时间之间的时间间隔小于延迟时间长度后,向发起i/o请求的用户设备反馈无法操作的信息。

具体地,当分布式文件系统连接用户设备的接口接收到用户设备发送的i/o请求,在用户设备看来,就是成功调用了分布式文件系统的接口,用户设备上申请i/o操作的业务会一直处于等待分布式文件系统对其发起的i/o请求进行响应的状态。如果等待的时间过长,就会造成申请i/o操作的业务出现i/o超时的问题,影响用户设备中业务的执行。因此在本申请中,当分布式文件系统连接用户设备的接口接收到用户设备发送的i/o请求后,如果检测到此时能够处理该i/o请求,也即,检测接收到i/o请求的当前时间与最近一次将i/o请求放入待处理队列的时间之间的时间间隔不小于延迟时间长度的时候,会将i/o请求放入待处理队列中,以便分布式文件系统对i/o请求进行响应;如果检测到此时不能处理该i/o请求,也即,检测接收到i/o请求的当前时间与最近一次将i/o请求放入待处理队列的时间之间的时间间隔小于延迟时间长度的时候,则要及时向发出i/o请求的用户设备反馈无法操作的信息,使得用户设备能够及时收到分布式文件系统的反馈,从而不需要等待过久的时间,也就不会造成申请i/o操作的业务出现i/o超时的问题。如此,对于无法放入待处理队列的i/o请求,分布式文件系统会向发送该i/o请求的用户设备反馈无法操作的信息,用户设备在调用分布式文件系统接口成功,但分布式文件系统暂时无法对该用户设备发送的i/o请求进行处理的情况下,不需要如现有技术中一般一直处于等待状态,而是能够及时获知当前分布式文件系统无法对其i/o请求进行响应,从而不需要等待过久的时间,也就不会造成申请i/o操作的业务出现i/o超时的问题。

采用上述实施例,延迟时间长度是根据分布式文件系统对i/o请求的处理情况计算得到的,当分布式文件系统负载大时,该延迟时间长度就长,将接收到的i/o请求放入待处理队列的速度就慢,实现了对i/o请求的限流;进入分布式文件系统的i/o请求越少,则分布式文件系统的处理压力也就越小,从而减少分布式文件系统出现过载的情况,减少分布式文件系统对i/o请求的响应时间过长导致的业务出现的i/o超时的问题;当分布式文件系统负载小时,沿延迟时间长度就短,将接收到的i/o请求放入待处理队列的速度就快,进入分布式文件系统i/o请求越多,提升分布式文件系统的处理效率。

基于同一发明构思,本申请实施例中还提供了与i/o请求处理方法对应的i/o请求处理装置,由于本申请实施例中的装置解决问题的原理与本申请实施例上述i/o请求处理方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。

参见图6所示,本申请实施例提供的i/o请求处理装置,应用于分布式文件系统,包括:

计算模块601,用于根据分布式文件系统对输入输出i/o请求的处理情况,计算延迟时间长度;延迟时间长度为最近一次将i/o请求放入待处理队列的时间与下一次将i/o请求放入待处理队列的时间之间的时间间隔;

确定模块602,用于当接收到任一用户设备发起的i/o请求时,检测接收到i/o请求的当前时间与最近一次将i/o请求放入待处理队列的时间之间的时间间隔是否不小于延迟时间长度;

处理模块603,用于在确定模块的输出结果为是时,将当前接收到的i/o请求放入待处理队列,以便分布式文件系统对i/o请求进行响应,以及在确定模块的输出结果为否时,不将当前接收到的所述i/o请求放入待处理队列。

可选地,分布式文件系统对输入输出i/o请求的处理情况包括:分布式文件系统中待处理i/o请求的数量;

计算模块601,具体用于:根据分布式文件系统的中待处理i/o请求的数量以及预设的延迟系数,计算延迟时间长度。

可选地,计算模块601,具体使用如下步骤计算延迟时间长度:

在预先设定的多个数量范围中,确定待处理i/o请求的数量所处的数量范围;其中,不同数量范围对应有不同的延迟系数,且数量范围中的数值越大,该数量范围对应的延迟系数越大;

根据分布式文件系统的中待处理i/o请求的数量,以及与确定的数量范围对应的延迟系数,计算延迟时间长度。

可选地,分布式文件系统对输入输出i/o请求的处理情况包括:预设时间长度内对i/o请求进行响应的平均响应时长;

计算模块601,具体用于:根据平均响应时长以及预设的延迟系数,计算延迟时间长度。

可选地,计算模块具体用于采用如下步骤计算延迟时间长度:

在预先设定的多个响应时长范围中,确定平均响应时长所处的响应时长范围;其中,不同响应时长范围对应有不同的延迟系数,且响应时长范围中的响应时长越长,该响应时长范围对应的延迟系数越大;

根据平均响应时长,以及与确定的响应时长范围对应的延迟系数,计算延迟时间长度。

采用上述实施例,延迟时间长度是根据分布式文件系统对i/o请求的处理情况计算得到的,当分布式文件系统负载大时,该延迟时间长度就长,将接收到的i/o请求放入待处理队列的速度就慢,实现了对i/o请求的限流;进入分布式文件系统的i/o请求越少,则分布式文件系统的处理压力也就越小,从而减少分布式文件系统出现过载的情况,减少分布式文件系统对i/o请求的响应时间过长导致的业务出现的i/o超时的问题;当分布式文件系统负载小时,沿延迟时间长度就短,将接收到的i/o请求放入待处理队列的速度就快,进入分布式文件系统i/o请求越多,提升分布式文件系统的处理效率。

可选地,还包括:反馈模块604,用于向发起i/o请求的用户设备反馈无法操作的信息。

采用该实施例,对于无法放入待处理队列的i/o请求,分布式文件系统会向发送该i/o请求的用户设备反馈无法操作的信息,用户设备在调用分布式文件系统接口成功,但分布式文件系统暂时无法对该用户设备发送的i/o请求进行处理的情况下,不需要如现有技术中一般一直处于等待状态,而是能够及时获知当前分布式文件系统无法对其i/o请求进行响应,从而不需要等待过久的时间,也就不会造成申请i/o操作的业务出现i/o超时的问题。

如图7所示,为本申请另一实施例所提供的i/o请求处理装置示意图,该i/o请求处理装置100包括:处理器110、存储器120和总线130,存储器120存储有执行指令,当装置运行时,处理器110与存储器120之间通过总线130通信,处理器110执行存储器120中存储的如下执行指令:

根据分布式文件系统对输入输出i/o请求的处理情况,计算延迟时间长度;延迟时间长度为最近一次将i/o请求放入待处理队列的时间与下一次将i/o请求放入待处理队列的时间之间的时间间隔;

当接收到任一用户设备发起的i/o请求时,检测接收到i/o请求的当前时间与最近一次将i/o请求放入待处理队列的时间之间的时间间隔是否不小于延迟时间长度;

如果是,则将当前接收到的i/o请求放入待处理队列,以便分布式文件系统对i/o请求进行响应;

如果否,则不将当前接收到的所述i/o请求放入待处理队列。

可选地,分布式文件系统对输入输出i/o请求的处理情况包括:分布式文件系统中待处理i/o请求的数量;处理器110具体用于:根据分布式文件系统的中待处理i/o请求的数量以及预设的延迟系数,计算延迟时间长度。

可选地,处理器110具体用于使用如下步骤计算延迟时间长度:在预先设定的多个数量范围中,确定待处理i/o请求的数量所处的数量范围;其中,不同数量范围对应有不同的延迟系数,且数量范围中的数值越大,该数量范围对应的延迟系数越大;

根据分布式文件系统的中待处理i/o请求的数量,以及与确定的数量范围对应的延迟系数,计算延迟时间长度。

可选地,分布式文件系统对输入输出i/o请求的处理情况包括:预设时间长度内对i/o请求进行响应的平均响应时长;处理器110具体用于根据平均响应时长以及预设的延迟系数,计算延迟时间长度。

可选地,处理器110具体用于采用如下步骤计算延迟时间长度:

在预先设定的多个响应时长范围中,确定平均响应时长所处的响应时长范围;其中,不同响应时长范围对应有不同的延迟系数,且响应时长范围中的响应时长越长,该响应时长范围对应的延迟系数越大;

根据平均响应时长,以及与确定的响应时长范围对应的延迟系数,计算延迟时间长度。

本申请实施例所提供的i/o请求处理方法以及装置的计算机程序产品,包括存储了程序代码的计算机可读存储介质,程序代码包括的指令可用于执行前面方法实施例中的方法,具体实现可参见方法实施例,在此不再赘述。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。

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