一种服务器业务请求处理方法和装置制造方法及图纸

技术编号:7483389 阅读:177 留言:0更新日期:2012-07-05 19:13
本发明专利技术提供了一种服务器业务请求处理方法和装置,其中,该方法通过服务器预先创建有限数量的空闲的待用线程;在服务器运行过程中,将接收到的业务请求排队形成请求队列,并分配调用空闲的待用线程对请求队列中尚未处理的业务请求进行处理;被分配调用的待用线程在业务请求处理执行完成后,重新释放为空闲状态,供服务器后续调用。本发明专利技术方法和装置保证了服务器在运行过程中能够保持较高的业务请求处理执行效率,增强了服务器的业务请求处理性能,让服务器的业务请求处理性能得到更为优化和充分的利用,并且本发明专利技术方法可以广泛应用于任何业务的服务器当中,让服务器提供更加快速、高效的业务服务,提升用户的业务体验以及对业务服务产品的忠诚度。

【技术实现步骤摘要】

本专利技术涉及计算机通信网络技术和服务器
,具体涉及一种服务器业务请求处理方法和装置
技术介绍
服务器,是指在计算机通信网络中的一个管理资源对外提供业务服务的高性能计算机。服务器类型有很多,例如数据服务器、文件服务器、网页服务器、流媒体服务器、搜索服务器等,它们侦听计算机通信网络中来自计算机客户端或移动通信客户端的业务请求, 并对业务请求进行响应和处理,进而为计算机客户端或移动通信客户端提供各种不同的业务服务,丰富了网络应用。计算机通信网络中的服务器随时都面临着数量庞大的业务请求需要执行处理,服务器对业务请求的处理能力自然也成为其业务服务质量的一项重要衡量标准,快速、高效的业务服务更能够提升用户的业务体验以及对业务服务产品的忠诚度。为了提升服务器业务服务质量,目前服务器都普遍采用了多线程并发执行业务请求处理的方式,以增强服务器的业务请求处理能力。现有服务器通常所采用的多线程并发业务请求处理方式,是每当一个请求到达的时候,服务器都新建一个线程对新到达的业务请求进行处理,直至处理完毕以后再销毁相应的线程;这一方式虽然能够完成对众多业务请求的多线程并发处理,但若在较短时间内有数量过于庞大的业务请求到达服务器时,过多的业务请求处理线程很可能“垄断”占用服务器的系统资源,使得服务器运行效率骤然降低,反而出现业务请求处理的延时较长甚至无响应的情况;不仅如此,由于并发执行大量的业务请求处理时,服务器也同时需要大量地、不间断地创建和销毁线程,这无疑进一步增加了服务器执行业务请求处理的耗时,并且大量地创建、销毁线程自身也进一步的消耗了服务器系统资源,更容易导致服务器无响应、业务服务中断的严重后果。
技术实现思路
针对现有技术中存在的上述不足,本专利技术的目的在于提供一种服务器业务请求处理方法和装置,使得服务器能够保持较高的业务请求处理执行效率,进一步增强服务器的业务请求处理性能。为实现上述目的,本专利技术采用了如下技术手段一种服务器业务请求处理方法,服务器预先创建有限数量的空闲的待用线程;在服务器运行过程中,将接收到的业务请求排队形成请求队列,并分配调用空闲的待用线程对请求队列中尚未处理的业务请求进行处理;被分配调用的待用线程在业务请求处理执行完成后,重新释放为空闲状态,供服务器后续调用。上述的服务器业务请求处理方法中,作为一种可选择方案,所述“服务器预先创建有限数量的空闲的待用线程”具体为,在服务器启动运行时,创建Nmax个空闲的待用线程, Nmax为预设最大线程数;在服务器运行过程中,所述“分配调用空闲的待用线程对请求队列中尚未处理的业务请求进行处理”的具体分配调用步骤如下1)判断当前时刻请求队列中是否存在尚未处理的业务请求;若是,执行步骤2);否则执行步骤4);2)判断当前时刻是否存在空闲的待用线程;若是,执行步骤3);否则执行步骤4);3)分配调用一个空闲的待用线程对请求队列中当前时刻排队最靠前的一个尚未处理的业务请求进行处理,然后立即返回步骤1);4)经延时At后,返回步骤1)。上述的服务器业务请求处理方法中,作为另一种可选择方案,所述“服务器预先创建有限数量的空闲的待用线程”具体为,在服务器启动运行时,创建N个空闲的待用线程,且 N<Nmax, Nmax为预设最大线程数;在服务器运行过程中,所述“分配调用空闲的待用线程对请求队列中尚未处理的业务请求进行处理”的具体分配调用步骤如下a)判断当前时刻请求队列中是否存在尚未处理的业务请求;若是,执行步骤b);否则执行步骤e);b)判断当前时刻是否存在空闲的待用线程;若是,执行步骤c);否则执行步骤d);c)分配调用一个空闲的待用线程对请求队列中当前时刻排队最靠前的一个尚未处理的业务请求进行处理,然后立即返回步骤a);d)判断当前时刻待用线程的总数是否已达到预设最大线程数Nmax;若是,则执行步骤 e);否则,再创建一个空闲的待用线程对请求队列中当前时刻排队最靠前的一个尚未处理的业务请求进行处理,然后立即返回步骤a);e)经延时At后,返回步骤a)。上述的服务器业务请求处理方法中,进一步,所述N的取值范围为1/2 2/3倍预设最大线程数Nmax。上述的服务器业务请求处理方法中,进一步,所述预设最大线程数Nmax的取值范围为(1 士 10%)Nthr,Nthr为服务器目标线程数,且有Nthr= (1+Tw/Tc)Ncpu ;其中,Ncpu表示服务器的CPU数量;Tc表示业务请求处理过程中执行业务请求解析运算处理的平均持续时间;Tw表示业务请求处理过程中执行服务器数据读写操作的平均持续时间。上述的服务器业务请求处理方法中,进一步,所述延时At的取值范围为 50 500mso一种服务器业务请求处理装置,包括创建模块,用于预先创建有限数量的空闲的待用线程; 排队模块,用于在服务器运行过程中,将接收到的业务请求排队形成请求队列; 调度模块,用于分配调用空闲的待用线程对请求队列中尚未处理的业务请求进行处理;状态管理模块,用于将被分配调用的待用线程在业务请求处理执行完成后重新释放为空闲状态,供服务器后续调用。上述的服务器业务请求处理装置中,进一步,所述创建模块包括第一创建单元,用于在服务器启动运行时,创建Nmax个空闲的待用线程,Nmax为预设最大线程数;则所述调度模块包括第一调度单元,用于判断当前时刻请求队列中是否存在尚未处理的业务请求;若否,则经延时At后重新进行所述判断请求队列中是否存在尚未处理的业务请求,若是,则判断当前时刻是否存在空闲的待用线程;若否,则经延时Δ t后重新进行所述判断请求队列中是否存在尚未处理的业务请求,若是,则分配调用一个空闲的待用线程对请求队列中当前时刻排队最靠前的一个尚未处理的业务请求进行处理,然后立即返回执行所述判断请求队列中是否存在尚未处理的业务请求。上述的服务器业务请求处理装置中,进一步,所述创建模块包括第二创建单元,用于在服务器启动运行时创建N个空闲的待用线程,且N<NmaX,Nmax为预设最大线程数;则所述调度模块包括第二调度单元,用于判断当前时刻请求队列中是否存在尚未处理的业务请求;若否,则经延时At后重新进行所述判断请求队列中是否存在尚未处理的业务请求,若是,则判断当前时刻是否存在空闲的待用线程;若是,则分配调用一个空闲的待用线程对请求队列中当前时刻排队最靠前的一个尚未处理的业务请求进行处理,然后立即返回执行所述判断请求队列中是否存在尚未处理的业务请求,若否,则判断当前时刻待用线程的总数是否已达到预设最大线程数Nmax ;若是,则经延时At后重新进行所述判断请求队列中是否存在尚未处理的业务请求,若否,则再创建一个空闲的待用线程对请求队列中当前时刻排队最靠前的一个尚未处理的业务请求进行处理,然后立即返回执行所述判断请求队列中是否存在尚未处理的业务请求。上述的服务器业务请求处理装置中,进一步,所述预设最大线程数Nmax的取值范围为(1 士 10%)Nthr,Nthr为服务器目标线程数,且有Nthr= (1+Tw/Tc)Ncpu ;其中,Ncpu表示服务器的CPU数量;Tc表示业务请求处理过程中执行业务请求解析运算处理的平均持续时间;Tw表示业务请求处理过程中执行服务器数据读写操作的平均持续时间。相比于现有技术,本专利技术具本文档来自技高网
...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:王忻
申请(专利权)人:重庆新媒农信科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术