一种提高服务器处理并发业务能力的方法和系统与流程

文档序号:12719132阅读:919来源:国知局
一种提高服务器处理并发业务能力的方法和系统与流程

本发明涉及IT(信息技术)领域,特别涉及一种提高服务器处理并发业务能力的方法和系统。



背景技术:

随着IT技术的发展和社会沟通的加强,人类完全进入了信息化时代。企业和个人产生了巨量的信息数据,并且每天在互联网上、局域网上处理着数以亿计的信息数据,无数的服务器在进行处理和运算。服务器的运算能力,日益成为发展的重要资源和基础。电信、互联网、电力、IDC等IT业务规模的扩大以及新业务的创新,对服务器的运算能力持续提升,要求服务器储备足够的运算能力来应对可能的计算量的快速增长。同时,云计算、大数据、社交、移动互联网等热点不断对服务器的运算能力提出更高的要求,推动了服务器运算能力的全面提升。

为了解决大数据量处理任务、高并发请求,基本的方案集中在下列几种:

1)提高CPU并发计算能力

服务器之所以可以同时处理多个请求,在于操作系统通过多执行流体系设计使得多个任务可以轮流使用系统资源,这些资源包括CPU,内存以及I/O。这里的I/O主要指磁盘I/O和网络I/O。具体来讲,就是采取多进程&多线程、、减少进程切换、减少使用不必要的锁、考虑进程优先级和关注CPU使用率的方法来提高系统资源的利用率。这个方法的缺点在于:当子进程被父进程创建后,进程的创建使用fork()系统调用,需要耗费一定的开销,这个开销若太频繁,可能影响性能。

2)优化系统调用

系统调用涉及进程从用户态到内核态的切换,导致一定的内存交换,这也是一定程度上的上下文切换,所以系统调用的开销通常认为比较昂贵的。减少不必要的系统调用,也是服务器性能优化的一个方面。这个方法的缺点在于:当进程需要对硬件外设进行操作的时候,必须切换到内核态,这时它需要拥有更多的权力来操纵整个计算机。

3)减少内存分配和释放

服务器的工作过程中,需要大量的内存,使得内存的分配和释放工作尤为重要。可以通过改善数据结构和算法复制度来适当减少中间临时变量的内存分配及数据复制时间,而服务器本身也使用了各自的策略来提高效率。

同时,使用共享内存也可以提高内存的使用效率。共享内存指在多处理器的计算机系统中,可以被不同中央处理器(CPU)访问的大容量内存,也可以由不同进程共享,是非常快的进程通信方式。这个方法的缺点在于:会影响服务器的运输速度。

4)使用持久连接

持久连接也为长连接,它本身是TCP通信的一种普通方式,即在一次TCP连接中持续发送多分数据而不断开连接。从性能角度看,建立TCP连接的操作本身是一项不小的开销,在允许的情况下,连接次数越少,越有利于性能的提升。这个方法的缺点在于:若连接时间过长,则可能导致资源无效占有,维持大量空闲进程,影响服务器性能。

5)改进I/O模型

I/O操作根据设备的不同分为很多类型,比如内存I/O,网络I/O,磁盘I/O。对于网络I/O和磁盘I/O,它们的速度要慢很多,为了提高网络i/O的速度,需要内核系统调用来完成,这使得CPU不得不浪费宝贵的时间来等待慢速I/O操作。改变各种I/O模型,让高速CPU和慢速I/O设备更好地协调工作,能够有效提高服务器效率。

这个方法的缺点在于:处理不同大小、不同类型的文件,需要不同的I/O模型相匹配。

6)改进硬件环境

提高硬件环境,改善服务器的硬件配置,提升站点的处理能力。该方法同时也会带来成本的上升。

为了提高服务器的运算能力,同时避免上述方法的缺点,需要改进服务器并发策略,让I/O操作和CPU计算尽量重叠进行,避免服务器大量的空闲连接,为活跃连接提供足够的计算能力,减少不必要的开销,以提高服务器的运算能力。



技术实现要素:

本发明提供一种提高服务器处理并发业务能力的方法和系统,能够充分发挥CPU的处理能力,协调高速CPU和慢速I/O设备之间的协同步骤,避免服务器的无效等待和不必要的开销,减少持久连接,降低服务器处理能力升级的成本,有效提高服务器的运行效率。

本发明的技术方案提供了一种提高服务器处理并发业务能力的方法,包括以下步骤:

处理服务器向数据服务器发送数据请求;

数据服务器返回一个对象;

处理服务器根据返回的对象注册函数;

函数等待数据服务器的返回值,同时处理服务器处理其他请求;

数据服务器向函数输出返回值;

函数向处理服务器输出值;

处理服务器接收函数的所述输出值。

进一步的,一台处理服务器对应不少于一台数据服务器;

一台数据服务器对应不少于一台处理服务器。

进一步的,所述数据服务器根据处理服务器的数据请求来设计对象,所述对象与数据请求相关联。

进一步的,所述处理服务器注册的函数与数据请求相关联。

进一步的,处理服务器具备向不少于一台数据服务器提交不少于一个数据请求的运算能力;

数据服务器具备根据不少于一个处理服务器的数据请求而产生并返回不少于一个对象的运算能力;

处理服务器具备根据不少于一个数据请求所返回的对象来注册不少于一个函数的运算能力。

进一步的,所述函数向处理服务器输出值,进一步包括:

所述函数接收数据服务器的所述返回值作为输入值;

所述函数根据所述输入值产生输出值;

所述处理服务器接收函数的输出值作为所述数据请求的返回值。

进一步的,所述函数的输出值对应处理服务器所请求的数据。

本发明的技术方案还提供了一种提高服务器处理并发业务能力的系统,包括:处理服务器和数据服务器,其中,

处理服务器用于发出数据请求,根据返回的对象注册函数,并接收函数的返回值作为数据请求的返回值;

数据服务器用于根据数据请求返回对象,并输出数据请求的返回值。

进一步的,所述数据服务器输出的数据请求的返回值作为所述函数的输入。

进一步的,所述函数根据数据处理器的返回值来产生函数的输出值;

所述函数的输出值作为处理服务器的数据请求的返回值。

本发明技术方案设计了专用的对象和函数来调整I/O设备与CPU之间的工作步骤,能够充分发挥CPU的处理能力,协调高速CPU和慢速I/O设备之间的协同步骤,避免服务器的无效等待和不必要的开销,减少持久连接,降低服 务器处理能力升级的成本,有效提高服务器的运行效率。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。

下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。

附图说明

附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:

图1为本发明实施例一中提高服务器处理并发业务能力的方法流程图;

图2为本发明实施例一中提高服务器处理并发业务能力的系统结构图。

具体实施方式

以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。

图1为本发明实施例一中提高服务器处理并发业务能力的方法流程图。如图1所示,该流程包括以下步骤:

步骤101、处理服务器向数据服务器发送数据请求。

一台处理服务器对应不少于一台数据服务器;

一台数据服务器对应不少于一台处理服务器;

处理服务器具备向不少于一台数据服务器提交不少于一个数据请求的运算能力。

步骤102、数据服务器返回一个对象。

所述数据服务器根据处理服务器的数据请求来设计对象,所述对象与数据请求相关联;

数据服务器具备根据不少于一个处理服务器的数据请求而产生并返回不少于一个对象的运算能力。

步骤103、处理服务器根据返回的对象注册函数。

所述处理服务器注册的函数与数据请求相关联;

处理服务器具备根据不少于一个数据请求所返回的对象来注册不少于一个函数的运算能力。

步骤104、函数等待数据服务器的返回值,同时处理服务器处理其他请求。

步骤105、数据服务器向函数输出返回值。

步骤106、函数向处理服务器输出值。

所述函数接收数据服务器的所述返回值作为输入值;

所述函数根据所述输入值产生输出值;

所述处理服务器接收函数的输出值作为所述数据请求的返回值。

步骤107、处理服务器接收函数的所述输出值。

所述函数的输出值对应处理服务器所请求的数据。

为了实现上述服务器代码部署的流程,本实施例还提供了一种提高服务器处理并发业务能力的系统,图2为本发明实施例一中提高服务器处理并发业务能力的系统结构图。如图2所示,该系统包括:处理服务器201和数据服务器202,其中,

处理服务器用于发出数据请求,根据返回的对象注册函数,并接收函数的返回值作为数据请求的返回值;

数据服务器用于根据数据请求返回对象,并输出数据请求的返回值。

进一步的,所述数据服务器输出的数据请求的返回值作为所述函数的输入;

所述函数根据数据处理器的返回值来产生函数的输出值;

所述函数的输出值作为处理服务器的数据请求的返回值。

本发明技术方案采用了专用的对象和函数来调整I/O设备与CPU之间的工 作步骤,能够充分发挥CPU的处理能力,协调高速CPU和慢速I/O设备之间的协同步骤,避免服务器的无效等待和不必要的开销,减少持久连接,降低服务器处理能力升级的成本,有效提高服务器的运行效率。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

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