CN101681273A - 响应于所接收的请求进行工作的服务器装置 - Google Patents
响应于所接收的请求进行工作的服务器装置 Download PDFInfo
- Publication number
- CN101681273A CN101681273A CN200880015357A CN200880015357A CN101681273A CN 101681273 A CN101681273 A CN 101681273A CN 200880015357 A CN200880015357 A CN 200880015357A CN 200880015357 A CN200880015357 A CN 200880015357A CN 101681273 A CN101681273 A CN 101681273A
- Authority
- CN
- China
- Prior art keywords
- identification information
- aforementioned
- request
- information storage
- zone
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5018—Thread allocation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明使响应于请求的处理的分配比以往更加高效化。本发明提供一种响应于从客户端装置接收到的请求进行工作的服务器装置,具备:存储装置,其在系统存储空间中具有将从客户端装置接收到的请求与其标识信息对应地存储起来的请求存储区域,并且在用户存储空间中具有用于存储等待处理的请求的标识信息的标识信息存储区域;标识信息存储单元,其以在标识信息存储区域中存储的标识信息的数量减少到小于等于基准数的情况为条件,从请求存储区域检索一个或一个以上的等待处理的请求,将其标识信息存储在标识信息存储区域;多个请求处理单元,其相互并行地工作,从标识信息存储区域获得标识信息,从请求存储区域获得由该标识信息标识的请求,并进行响应于该请求的处理。
Description
技术领域
本发明涉及响应于所接收的请求进行工作的服务器装置。特别地,本发明涉及响应于所接收的多个请求多个处理单元并行地进行工作的服务器装置。
背景技术
近年来,使用了web服务器的业务日益盛行,对于web服务器所要求的功能也变得高级且复杂。例如,有时web服务器会同时并行地接收到多个请求。为了有效地响应它们,大规模的web服务器具备多个CPU,在操作系统上使多个线程工作,并且对该多个线程的各个分配各请求,从而使之并行地进行处理。
非专利文献1:关于Winsock。主页URL“http://e-words.jp/w/Winsock.html”,2007年4月18日检索。
为了利用web服务器有效地处理请求,有效的是:缩短线程从完成某一请求的处理开始,直至开始下一请求的处理为止的等待时间(以下,称为空闲时间),或者没有空闲时间。为了实现之,考虑各线程只要在完成前一次的请求的处理之后,检索接收完毕而未处理的请求即可。但是,在多个线程的各个与其他线程独立地检索这样的请求的情况下,有时效率会较差。
具体地,不限于web服务器,在服务器装置与客户端装置之间遵照TCP/IP协议等进行通信的情况下,大多数情况下都使用作为套接字接口所已知的接口。例如,公知有面向BSD系列的UNIX操作系统开发的Socket接口、Windows操作系统的Winsock接口等(参照非专利文献1)。
在该套接字接口中,利用操作系统、设备驱动器等的功能,将从客户端装置接收到的请求,与称为文件描述符的标识信息对应地存储在系统存储空间中。各线程,在要检索接收完毕且未处理的请求的情况下,必须扫描该系统存储空间,读出与各个文件描述符对应的请求,并且判断该请求是否接收完毕且未处理。
在该检索中,由于需要对于系统存储空间的访问,所以大多数情况下都需要调出系统调用。此外,若各线程独立地进行该检索,则由于会存在一个请求被分配给多个线程等的问题,所以为了进行该检索,期望进行与其他线程之间的排他控制(大多数情况下该排他控制也被实现为系统调用的功能)。因此,若各线程独立地进行这样的检索,则有可能在处理上耗费时间,从而反而使作为web服务器整体的性能降低。
相对于此,考虑通过仅使某一特定的线程为了向其他线程分配请求而进行这样的检索,来缩短系统调用所需的处理时间。但是,该特定的线程的处理由于不是响应于web服务器原始的请求的处理,所以若过度频繁地工作,则反而使作为web服务器整体的处理能力降低。另一方面,若使该特定的线程的工作频度过度降低,则将会尽管请求接收完毕,也不能够将其分配给其他线程,从而使空闲时间增加。
发明内容
因而,本发明的目的在于提供能够解决上述问题的服务器装置、方法以及程序。该目的利用权利要求书中的独立权利要求所记载的特征的组合来实现。此外,从属权利要求限定了本发明的更为有利的具体例。
为了解决上述问题,在本发明的一个方面,提供一种响应于从客户端装置接收到的请求进行工作的服务器装置、利用该服务器装置处理请求的方法以及使计算机作为该服务器装置发挥作用的程序,该服务器装置具备:存储装置,其在系统存储空间中具有将从客户端装置接收到的请求与其标识信息对应地存储起来的请求存储区域,并且在用户存储空间中具有用于存储等待处理的请求的标识信息的标识信息存储区域;标识信息存储单元,其以在前述标识信息存储区域中存储的标识信息的数量减少到小于等于预定的基准数的情况为条件,从前述请求存储区域检索一个或一个以上的等待处理的请求,并将其标识信息存储在前述标识信息存储区域;以及多个请求处理单元,其相互并行地进行工作,并且以能够从前述标识信息存储区域获得标识信息为条件,从前述请求存储区域获得由该标识信息标识的请求,并进行响应于该请求的处理。
此外,上述的发明概要并未列举出本发明的必要特征的全部,并且这些特征组的子组合也能够成为发明。
附图说明
图1示出信息系统10的整体结构;
图2示出本实施方式的服务器装置20的第一结构例的概要;
图3示出本实施方式的服务器装置20的第二结构例的概要;
图4是示出本实施方式的标识信息存储单元215的工作的流程图;
图5是示出本实施方式的请求处理单元218-1的工作的流程图;
图6示出S430、S520以及S530中的工作的细节;
图7关于本实施方式的第一变形例,示出S430、S520以及S530中的工作的细节;
图8是关于本实施方式的第二变形例,示出请求处理单元218-1的工作的流程图;
图9是关于本实施方式的第二变形例,示出基于获得标识信息的速度计算工作开始时刻的处理的概要的流程图;
图10是关于本实施方式的第三变形例,示出标识信息存储单元215的工作的流程图;
图11是关于本实施方式的第四变形例,示出标识信息存储单元215的工作的流程图;以及
图12示出作为本实施方式的服务器装置20发挥作用的计算机的硬件结构的一例。
符号说明
10:信息系统;15:客户端装置;20:服务器装置;200:存储装置;205A:请求存储区域;205B:标识信息存储区域;205C:状态存储区域;210:CPU;215:标识信息存储单元;218:请求处理单元;220:通信接口.
具体实施方式
以下,通过发明的实施方式说明本发明,但是,以下的实施方式并非要限定权利要求的范围的发明,此外,在实施方式中说明的特征的组合的全部不一定是发明的解决手段所必须的。
图1示出信息系统10的整体结构。信息系统10具备多个客户端装置15和服务器装置20。多个客户端装置15经由通信网络连接至服务器装置20。并且,多个客户端装置15的各个,根据其用户的指示等,对服务器装置20发送请求。在服务器装置20是web服务器的情况下,该请求是例如HTTP请求。并且,服务器装置20,进行响应于该请求的处理,并且作为其处理结果例如生成新的web页,将其包含在HTTP响应中返回给客户端装置15。
服务器装置20,由计算机实现,作为其硬件结构的至少一部分,具有存储装置200、一个或一个以上的CPU 210、通信接口220。存储装置200,存储有用于使该计算机作为服务器装置20发挥作用的程序以及数据。至少一个的CPU 210,读入这些程序以及数据并进行信息处理。通信接口220根据基于程序进行工作的CPU 210的指示,在与多个客户端装置15之间进行通信。
本实施方式的服务器装置20的目的在于,有效利用这些CPU 210的处理能力,即使在同时并行地接收到多个请求的情况下,也能够有效地处理它们。
图2示出本实施方式的服务器装置20的第一结构例的概要。服务器装置20,在存储装置200的系统存储空间中具有请求存储区域205A,在存储装置200的用户存储空间中具有标识信息存储区域205B。系统存储空间,是由操作系统或各种设备驱动器管理的存储区域。为了访问该系统存储空间,大多数情况下,需要调出操作系统等所提供的预定的系统调用。这是因为,在系统存储空间中存储的数据,与硬件、操作系统等自身的工作密切地相关,若允许用户程序的自由的访问,则将会对服务器装置20的工作产生干扰。
请求存储区域205A,将从客户端装置15接收到的请求与其标识信息对应地存储起来。请求,例如表示客户端装置15向服务器装置20请求的处理的内容。作为一例,该请求是用于执行所请求的处理的服务程序的位置以及对其提供的参数。所谓服务程序的位置,包括例如路径名、文件名、扩展符等,其称为URL(Uniform Resource Locator,统一资源定位符)。如果服务器装置20从客户端装置15接收到请求,则操作系统以及通信用的设备驱动器将该请求依次存储在该请求存储区域205A中。所存储的请求的数量,依所运营的web站点的规模而不同,但是有时可从数万到数十万个。
与请求对应的标识信息,是用于标识连接的信息,该连接用于发送接收该请求、与其对应的响应等。作为一例,在使用Socket接口进行TCP/IP连接的情况下,该标识信息称为文件描述符,其在用户程序对请求进行处理、返回响应等的情况下被使用。在图中,用fd1、fd2、fd3、...、fdN等符号表示这些文件描述符。在即使建立了连接但请求也未到达的情况下(例如是客户端装置15侧的处理未完成的情况、在服务器装置20中正在处理其之前的请求的情况等),仅文件描述符被存储在请求存储区域205A中,而与之对应的请求并不存储。
另一方面,用户存储空间是可由用户程序无需调出系统调用便可访问的存储区域。标识信息存储区域205B,是为了在该用户存储空间中存储等待处理的请求的标识信息而设置的。标识信息存储区域205B,是先入先出(FIFO:First In First Out)的队列,其将由标识信息存储单元215存储的标识信息存储在末尾,并从开头对请求处理单元218-1~n提供标识信息。等待处理的请求,例如是服务器装置20接收完毕但还未由后述的请求处理单元218开始处理的请求。因而,在虽然文件描述符被存储在请求存储区域205A中、但与之对应的请求未存储的情况下,标识信息存储区域205B不存储该文件描述符。另一方面,标识信息存储区域205B,对于虽然已经存储过、但已由任意一个请求处理单元218获得并开始了处理的请求的标识信息,不进行存储。
服务器装置20,具有利用至少一个CPU 210的控制进行工作的标识信息存储单元215以及请求处理单元218-1~n。标识信息存储单元215以及请求处理单元218-1~n的实现方法的概要如下。操作系统使多个线程这样的执行主体进行工作,其中该线程,从程序设计人员、用户等的角度看就如同CPU那样进行工作。该执行主体是用于依次执行程序的程序计数器、用于程序记录处理中的数据存储在存储装置200中的位置的堆栈指针、用于程序存储处理中的数据的寄存器以及为该程序专门准备的用户存储空间内的存储区域。
并且,操作系统将多个CPU 210的各个分配给任意一个线程,利用各线程实际执行程序。在程序等待相对低速的输入输出设备的处理完成的情况、等待其他线程的预定工作完成的情况等下,操作系统通过将分配给该线程的CPU分配给其他线程,来避免CPU的能力浪费在处理完成的等待上,从而有效利用CPU。也就是说,所谓线程,是这样的执行主体:为了在CPU的数量与同时并行地工作的程序的数量不同的情况下有效利用CPU、此外有效利用输入输出完成的等待的时间,将CPU的工作虚拟化了。
将这样线程变为处理等待从而将CPU分配给其他线程的处理,称为线程的锁死(ブロツク)或线程的锁死操作。线程的锁死,具体地,通过以下过程实现:例如将该CPU的程序计数器、堆栈指针以及寄存器的值转移到与等待处理完成的线程对应地预定的存储区域之后,将该其他线程的程序计数器、堆栈指针以及寄存器的值存储到该CPU的程序计数器、堆栈指针以及寄存器中。由于尽管线程的锁死将由操作系统迅速地进行处理,但是在处理中也耗费某一程度的时间,所以若锁死的次数较少,则处理的效率将会提高。
本实施方式的标识信息存储单元215以及请求处理单元218-1~n的各个,由相互不同的多个线程的各个实现。也就是说,操作系统将各CPU 210分配给标识信息存储单元215以及请求处理单元218-1~n的任意一个从而使其工作。如果CPU 210有多个,则这各单元将并行地进行工作。此外,在CPU 210的数量少于标识信息存储单元215以及请求处理单元218-1~n的总数的情况下(如果尽可能利用CPU 210的处理能力,则大多数情况都将为这样),若某一线程过度频繁地工作,则可能妨碍其他线程的工作。
接着,关于这样实现的标识信息存储单元215以及请求处理单元218-1~n的功能进行说明。标识信息存储单元215,从请求存储区域205A检索一个或一个以上的等待处理的请求,并将其标识信息存储在标识信息存储区域205B中。在图2的例子中,文件描述符fd1以及fd3将被检索出,并被存储在标识信息存储区域205B中。优选地,标识信息存储单元215发布系统调用,并且将作为其结果得到的标识信息存储在标识信息存储区域205B中,其中该系统调用用于以预定的数量为上限数而从请求存储区域205A汇集并检索一个或一个以上的请求。作为一例,该系统调用是Socket接口的pollset系统调用。由此,与逐个地检索请求相比,能够使处理高效化。
请求处理单元218-1~n相互并行地进行工作。但是,这样进行工作,如已经说明的那样,是以CPU 210的数量至少大于等于2从而充分多为前提的。并且,请求处理单元218-1~n的各个,尝试从作为FIFO队列的标识信息存储区域205B的开头获得标识信息。为了防止由多个请求处理单元218重复地处理一个请求的情况,在该标识信息的获得中需要排他控制。但是,该排他控制,由于是以用户存储空间的存储区域为对象的,所以不需要发布系统调用,而能够实现为极其高速的处理。例如,利用依CPU的不同而可在数周期到数十周期内执行的命令序列来实现,如果与系统调用的发布相比较,则可极其高速地进行处理,其中该命令序列是包含被称为compare_and_swap的命令的多个命令。
当在排他控制中获得排他权并且标识信息存储区域205B不为空(即存储有至少一个标识信息,以下相同)的情况下,标识信息的获得将成功完成。所谓获得,指在读出成为对象的信息之后,将该信息设定为在此后不能够读出(例如删除),其在下面与“读出”等用语相区别来使用。以标识信息能够获得为条件,请求处理单元218-1~n的各个,从请求存储区域205A获得由该标识信息所标识的请求。在请求的获得中,由于需要进行对于系统存储空间的访问,所以大多数情况下需要系统调用的发布。但是,由于确保了在标识信息能够获得的时刻能够独占地获得其请求,所以不存在这样的情况,即在该系统调用中不能够获得请求,从而线程锁死。
并且,请求处理单元218-1~n的各个,进行响应于所获得的其请求的处理。例如,请求处理单元218-1~n利用Java程序来实现,并且通过利用Java虚拟机执行该Java程序来进行响应于请求的处理,其中Java程序被预先制作为进行响应于请求的处理的程序。根据需要,请求处理单元218-1~n的各个,将处理结果例如包含在新的web页中,并作为HTTP响应返回给客户端装置15。返回的处理,由于也是遵照TCP/IP的通信,所以文件描述符被使用。
以上,在参照图2说明的第一结构例中,将标识等待处理的请求的标识信息存储在用户存储空间中,并且通过仅使一个线程对之进行随时更新,来防止实现请求处理单元218-1~n的多个线程在对于系统存储空间的访问中进行竞争的情况。其结果,线程锁死的可能性降低,此外系统调用的发布次数、频度等降低,从而能够使原本处理所消耗的CPU 210的利用率提高。
但是,如果标识信息存储单元215过度频繁地工作,则有可能为了进行其工作而过分地消耗CPU 210,从而阻碍进行响应于请求的原本的处理的请求处理单元218的工作。另一方面,如果标识信息存储单元215的工作频度过低,则有可能尽管在请求存储区域205A中有等待处理的请求,其标识信息也不会存储在标识信息存储区域205B中,从而使请求处理单元218的空闲时间增加,或者使实现请求处理单元218的线程(称为工作线程)频繁地锁死。相对于此,根据以下说明的第2结构例,通过根据状况以适度的频度使标识信息存储单元215执行,能够使得不会由标识信息存储单元215阻碍原本处理并且不使标识信息存储区域205B为空,并且使频度调整的处理也尽可能不阻碍响应于请求的原本的处理。
图3示出本实施方式的服务器装置20的第二结构例的概要。服务器装置20,由于关于具有请求存储区域205A、标识信息存储区域205B、标识信息存储单元215、请求处理单元218-1~n这一点以及其处理功能和实现方法与在图2中所描述的内容是相同的,所以除了以下一部分不同点之外,省略说明。另一方面,第二结构例中的服务器装置20,除了第一结构例中的服务器装置20之外,还在服务器装置20的用户存储空间中具有状态存储区域205C。
状态存储区域205C,是为了存储标识信息存储区域205B的状态而设置的。并且,其状态基于以下的至少一方:标识信息存储单元215存储在标识信息存储区域205B中的标识信息的数量,以及请求处理单元218-1~n从标识信息存储区域205B获得的标识信息的数量。至少请求处理单元218(例如,在此设定请求处理单元218-n,也可以是全部的请求处理单元218的各个),响应于利用已经描述的处理从标识信息存储区域205B获得标识信息的情况,根据所获得的标识信息的数量,更新在状态存储区域205C中存储的状态,并且判断是否对标识信息存储单元215指示工作的开始。
具体地,首先,请求处理单元218-n,从标识信息存储区域205B获得标识信息,其结果,判断在标识信息存储区域205B中存储的标识信息的数量是否减少到小于等于预定的基准数。该判断,可以通过扫描标识信息存储区域205B并对标识信息的数量进行计数来实现,但是也可以通过访问状态存储区域205C并参照对标识信息存储区域205B中的标识信息进行计数的计数器,实现为迅速的处理。并且,在标识信息的数量减少到小于等于基准数的情况下,请求处理单元218-n向标识信息存储单元215指示工作的开始。此外,与该处理共同地,与已经描述的请求处理单元218同样,请求处理单元218-n获得由所获得的标识信息所标识的请求,并进行响应其的处理。
标识信息存储单元215从任意一个请求处理单元218(例如请求处理单元218-n)接收指示而开始工作。也就是说,在开始工作时,满足关于标识信息的数量的预定条件,例如在标识信息存储区域205B中存储的标识信息的数量减少到了小于等于基准数这样的条件。并且,标识信息存储单元215从请求存储区域205A检索一个或一个以上的等待处理的请求,并将它们的标识信息依次存储到作为FIFO队列的标识信息存储区域205B的末尾。并且,标识信息存储单元215,响应于在标识信息存储区域205B中新存储了标识信息的情况,根据新存储的标识信息的数量,更新在标识信息存储区域205B中存储的状态。
以上,根据参照图3说明的第二结构例,由于能够在标识信息存储区域205B的标识信息减少到小于等于基准数且将要为空时,并且在为空之前,使标识信息存储单元215工作,从而用标识信息填充标识信息存储区域205B,所以能够减少实现请求处理单元218-1~n的工作线程的等待时间或者工作线程的锁死次数。此外,通过这样根据标识信息存储区域205B的状态确定标识信息存储单元215的工作开始,在请求处理单元218-1~n全部处于处理持续中的情况下,标识信息存储单元215完全不工作,从而作为服务器装置20的整体,能够提高原本处理的性能。进而,由于仅在请求处理单元218要开始新的请求的处理的情况下,在用于实现该开始的处理过程中判断是否应该使标识信息存储单元215的工作开始,所以也能够将标识信息存储单元215的工作频度的调整所需的CPU 210资源设定到最小限度。此外,利用基准数的确定方法,也能够进一步提高处理的效率。以下,参照图4及其以后的图说明基准数的确定方法以及与之适合的状态存储区域205C的更新方法。
图4是示出本实施方式的标识信息存储单元215的工作的流程图。如果服务器装置20启动,或者服务器装置20被复位,则服务器装置20生成用于实现标识信息存储单元215的线程(S400)。标识信息存储单元215,在这样其线程被生成了的情况下、如后面作为S450所说明的那样被指示了工作的开始的情况下等,开始工作,从请求存储区域205A检索一个或一个以上的等待处理的请求(S410)。这通过以下过程实现:对于已经描述的pollset系统调用的参数,提供并发布检索的请求的上限数(严格地,具体表达请求的数据的包大小)作为参数。此外,在标识信息存储单元215利用Java程序实现的情况下,在该系统调用的发布时,使用JNI(JavaNative Interface,Java本地接口)。此外,在大多数情况下,需要获得关于请求存储区域205A的全部或一部分的排他访问权。由此,关于表示工作的开始的一次指示,或者关于第一次的线程单次生成,汇集并检索以该上限数为上限的多个标识信息。
并且,标识信息存储单元215,将检索到的请求的标识信息依次存储到作为FIFO队列的标识信息存储区域205B的末尾(S420)。在该存储中,也需要获得对于标识信息存储区域205B的排他访问权,但是,由于与请求处理单元218访问标识信息存储区域205B的开头的情况相对,标识信息存储单元215访问其末尾,所以大多数情况下都会成功地获得排他访问权。此外,由于排他访问权是关于用户存储空间的,所以其处理也将极其迅速地完成。并且,标识信息存储单元215,响应于在标识信息存储区域205B中新存储了标识信息的情况,根据新存储的标识信息的数量,更新在状态存储区域205C中存储的状态(S430)。
接着,标识信息存储单元215,判断检索出的标识信息的数量是否等于预定的上述上限数(S445)。该上限数,与服务器装置20和客户端装置15之间的连接数相比较极小,例如可以是数十左右。其原因是在请求的检索中所需要的系统调用的开销的限制,例如标识信息存储区域205B的存储容量、初始化、串行化所需要的时间等的限制。如果上限数与标识信息的数量相等,则可能存在等待处理且未检索的请求。因此,标识信息存储单元215,以标识信息的数量等于上限数为条件(S445:是),返回到步骤S410的处理,立即检索请求。
另一方面,如果检索出的标识信息的数量少于上限数(S445:否),则标识信息存储单元215等待直到从工作线程、即在此是请求处理单元218-1~n的任意一个接收到开始工作的指示为止(S450)。该指示,利用作为后面的S550所说明的处理而发出。此外,优选地,标识信息存储单元215在等待开始之前或者与此同时地,为了将分配给了实现标识信息存储单元215的线程的CPU 210的控制分配给其他的线程,进行返回到操作系统的处理。关于该处理的细节,因为是作为现今的操作系统的功能而已知的,所以省略说明。
图5是示出本实施方式的请求处理单元218-1的工作的流程图。关于请求处理单元218-2~n的各个,也与请求处理单元218-1大致同样地进行工作。在此,作为它们的代表,关于请求处理单元218-1说明其工作。请求处理单元218-1,在被分配了从线程池中选择的线程时,开始工作。所谓线程池,是在服务器装置20的启动时或者复位时预先生成的线程的集合。也可以是,操作系统或中间件预先生成这样的线程池,并且为了执行用于实现适宜请求处理单元218的程序而分配其一部分。此外,代之,也可以是,请求处理单元218-1在服务器装置20的启动时或者复位时,立即开始工作,并且在其后也持续工作。也就是说,参照图5说明的工作,无论实现请求处理单元218-1的工作线程怎样启动,都表示实现请求处理单元218-1的工作线程进行的作为请求处理单元218-1的工作。
请求处理单元218-1,在开始工作时,首先,无需获得对于请求存储区域205A的访问的排他权,而利用已经描述的处理尝试从标识信息存储区域205B获得标识信息(S510)。由于标识信息存储区域205B设置在用户存储空间中,所以不需要系统调用的发布。但是,有时在标识信息存储区域205B的访问中需要获得排他访问权。该获得的处理,如已经说明的那样将极其迅速地完成。在此,在标识信息的获得失败了的情况下(所谓失败了,可以是仅尝试一次标识信息的获得而不能够获得的情况,也可以是连续尝试预定次数而失败了的情况),请求处理单元218-1等待直到新接收到等待处理的请求为止。该等待,利用图4的S440解除。
接着,请求处理单元218-1基于所获得的标识信息的数量,更新在状态存储区域205C中存储的状态(S520)。在请求处理单元218-1获得自身处理的请求的情况下,所获得的标识信息的数量是1个。接着,请求处理单元218-1判断是否对标识信息存储单元215指示工作的开始(S530)。在条件成立的情况下(S540:是),请求处理单元218-1对标识信息存储单元215指示工作的开始(S550)。该指示是针对前述的S450的等待接收的指示。由于能够获得标识信息,所以接着,请求处理单元218-1从请求存储区域205A获得由所获得的该标识信息标识的请求(S560)。为了获得请求,请求处理单元218-1获得请求存储区域205A内的区域的排他权,该请求存储区域205A内的区域是存储由所获得的该标识信息标识的请求的区域。
在请求的获得中,由于需要对于系统存储空间的访问,所以大多数情况下,需要系统调用的发布。但是,由于确保了在标识信息能够获得的时刻能够独占地获得其请求,所以不会存储这样的情况,即:在该系统调用中不能够获得请求,从而使工作线程锁死。因此,请求处理单元218-1,也可以例如省略使线程锁死的功能从而发布可高速地工作的专用的系统调用。所谓使线程锁死的功能,指例如检查要获得的请求是否已经成为等待处理状态并且如果不是等待处理状态则使线程锁死的功能,或者获得对于存储要获得的请求的存储区域的排他权并且如果不能够获得则使线程锁死的功能。并且,请求处理单元218-1进行响应于所获得的该请求的处理(S570)。在处理完成之后,请求处理单元218-1立即返回到S510的处理,尝试获得其他的标识信息。
图6示出S430、S520以及S530中的工作的细节。在S430,具体地,标识信息存储单元215将在标识信息存储区域205B中新存储的标识信息的数量存储在状态存储区域205C中(S600)。此外,在S520,具体地,请求处理单元218-1将在S600中存储的该标识信息的数量减去1。此外,在S530,具体地,请求处理单元218-1判断在状态存储区域205C中存储的标识信息的数量是否为0(S620)。由此,判断在前一次由标识信息存储单元215在标识信息存储区域205B中存储了标识信息之后,从标识信息存储区域205B获得的标识信息的数量是否达到前一次在标识信息存储区域205B中存储的标识信息的数量。
如果标识信息的数量为0(S620:是),则请求处理单元218-1判断为条件成立(S630),从而将在状态存储区域205C中存储的标识信息的数量重置为初始值(S650)。也就是说,该情况下的所谓上述预定的基准数,为在标识信息存储单元215前一次在标识信息存储区域205B中存储了标识信息的情况下、该存储之前的标识信息存储区域205B中的标识信息的数量。另一方面,如果标识信息的数量不为0(S620:否),则请求处理单元218-1判断为条件不成立(S640)。
以上,根据图6的例子,通过在前一次存储的数量的标识信息已经被获得了的情况下使标识信息存储单元215工作,能够与依赖于请求的、处理量的偏颇无关地,使标识信息存储区域205B内的标识信息的数量渐变为稳定,防止标识信息存储区域205B为空。
标识信息存储单元215进行工作的定时,也可以根据其他标准来确定。关于使用其他的标准的情况,作为变形例以下依次进行说明。
图7关于本实施方式的第一变形例,示出S430、S520以及S530中的工作的细节。在S430,具体地,标识信息存储单元215,响应于在标识信息存储区域205B中新存储了标识信息的情况,将为了检索请求而指定的该请求的上限数存储到状态存储区域205C中(S700)。此外,在S520,具体地,请求处理单元218-1将在S600中存储的该标识信息的上限数减去1。此外,在S530,具体地,请求处理单元218-1判断在状态存储区域205C中存储的标识信息的数量是否为0(S720)。由此,判断在前一次由标识信息存储单元215在标识信息存储区域205B中存储了标识信息之后,从标识信息存储区域205B获得的标识信息的总数是否达到上述上限数。
如果标识信息的数量为0(S720:是),则请求处理单元218-1判断为条件成立(S730),从而将在状态存储区域205C中存储的标识信息的数量重置为初始值(S750)。另一方面,如果标识信息的数量不为0(S720:否),则请求处理单元218-1判断为条件不成立(S740)。
以上,根据该第一变形例,由于在S700中不是存储新存储的标识信息的数量这样的变量,而只要存储上限数这样的常量即可,所以能够使S430中的更新的处理变得简单。此外,本领域技术人员可以明了,如果所存储的数值是常量,则能够实现利用了常量的性质的进一步高效率化,例如在S750的数值的重置时预见在S700中常量被存储的预先设定而预先存储该常量,并且省略S700等的高效率化。
图8是关于本实施方式的第二变形例,示出请求处理单元218-1的工作的流程图。在本第二变形例中,关于标识信息存储单元215的工作,与参照图4所说明的内容相同。此外,关于图8的S510以及S520,与参照图5所说明的S510以及S520相同。也就是说,请求处理单元218-1尝试从标识信息存储区域205B获得标识信息(S510)。在标识信息的获得失败了的情况下,请求处理单元218-1等待直到新接收到等待处理的请求为止。接着,请求处理单元218-1基于所获得的标识信息的数量,更新在状态存储区域205C中存储的状态(S520)。但是,在本第二变形例中,请求处理单元218-1不仅更新在状态存储区域205C中存储的状态,而且还与更新后的状态对应地存储更新的时刻。此外,请求处理单元218-1,在更新时,将更新前的状态以及前一次的更新时刻存储在状态存储区域205C中作为历史。
并且,请求处理单元218-1根据在状态存储区域205C中存储的状态以及历史,计算每单位时间从标识信息存储区域205B获得标识信息的数量的速度(S580)。图9中示出速度计算的具体例子。请求处理单元218-1根据某一时刻1下的标识信息的数量的历史以及另一时刻2下的标识信息的数量的历史,计算在这些时刻之间的期间中获得标识信息的数量的速度。作为一例,通过将两时刻间的标识信息的数量之差除以两时刻转换的经过时间来实现。计算出的速度,用直线的倾斜度Δ表示,该倾斜度Δ表示该两时刻间的标识信息的数量的变化。关于在速度计算中所使用的不同的两时刻的组,可以利用任意的方法选择。例如,请求处理单元218-1也可以根据最近的两时刻的历史来计算速度。速度的计算处理自身也可以不是在每次请求处理单元218-1获得了标识信息时都进行计算,而是按每预定的次数来进行计算。
返回到图8。接着,请求处理单元218-1根据该计算出的速度,计算预测在标识信息存储区域205B中存储的标识信息的数量减少到小于等于基准数的时刻(以下简称为预测时刻)(S590)。图9中示出该预测时刻的计算例子。请求处理单元218-1以上述的速度Δ为倾斜度,生成一次函数,该一次函数通过这样的坐标,即该坐标表示相对于该预测时刻的计算时刻的、在标识信息存储区域205B中存储的标识信息的数量。并且,请求处理单元218-1求取该一次函数与常量函数相交的点,并且计算该点在时间轴上的坐标值作为预测时刻1,其中该常量函数表示标识信息的数量是基准数。
请求处理单元218-1可以在该预测时刻1的时间点开始标识信息存储单元215的工作,但是也可以考虑标识信息存储单元215从开始工作开始直到实际在标识信息存储区域205B中新存储标识信息为止的时间,比预测时刻1更早地使标识信息存储单元215的工作开始。例如,请求处理单元218-1也可以将预测时刻1减去标识信息存储单元215从开始工作开始直到在标识信息存储区域205B中新存储标识信息为止所需要的预定的所需时间,从而计算出预测时刻2。该所需时间,可以是这样预定的时间,也可以通过观察标识信息存储单元215在标识信息存储区域205B中存储标识信息的数量的变化,之后计算其速度来求取。
返回到图8。接着,请求处理单元218-1,进行在如上述那样计算出的预测时刻(期望是预测时刻2,但也可以是预测时刻1)使标识信息存储单元215的工作开始的设定(S590)。这可以通过生成在预定的设定时刻开始工作的告警线程来实现。该告警线程,如果开始工作,则立即向标识信息存储单元215指示工作的开始从而完成处理。由此,能够使标识信息存储单元215在预测时刻工作。此外,在告警线程已经被生成时,为了防止重复地向标识信息存储单元215指示工作的开始,请求处理单元218-1可以不进行在此说明的速度计算的处理自身。此外,关于接着进行的S560以及S570的处理,由于参照图5进行了说明,所以省略说明。
以上,根据该第二变形例,如果一旦预测到标识信息减少到小于等于基准数的速度,则能够省略之后判断是否指示标识信息存储单元215的工作开始的处理,从而能够使请求处理单元218-1~n的处理效率提高。此外,由于预测是根据实际观察的标识信息的数量进行的,所以能够根据服务器装置20的应用状况灵活地调整标识信息存储单元215的工作频度。
图10是关于本实施方式的第三变形例,示出标识信息存储单元215的工作的流程图。在本第三实施例中,关于请求处理单元218-1的工作,由于与在图5、其变形例等中所说明的内容是相同的,所以省略说明。此外,关于标识信息存储单元215的工作,也与参照图4说明的S400至S445的工作是相同的。也就是说,标识信息存储单元215,从请求存储区域205A检索接收完毕的请求并将其标识信息存储在标识信息存储区域205B中,并且更新状态存储区域205C的状态。并且,标识信息存储单元215判断检索出的请求的数量是否等于检索的请求的上限数(S445)。
以下的处理与参照图5所说明的处理不同。如果检索出的标识信息的数量少于上限数(S445:否),则标识信息存储单元215判断是否从其他工作线程、即在此是请求处理单元218-1~n的任意一个接收到开始工作的指示(S460)。在接收到开始工作的指示的情况下(S460:是),标识信息存储单元215返回到S410的处理,检索下一请求。在未接收到的情况下(S460:否),标识信息存储单元215判断从上一次开始工作开始是否经过了预定的期间(S470)。如果经过了预定的期间(S470:是),则标识信息存储单元215开始工作,判断预定的条件是否成立(S480)。该是否经过了预定的期间的判断,优选利用由操作系统等预先提供的计时器功能来实现。在条件成立的情况下,返回到S410的处理(S490),检索下一请求。
作为S480所示出的该条件判断,与作为上述的S530说明的请求处理单元218-1所进行的判断是相同的。也就是说,在本第三变形例中,不仅请求处理单元218-1,而且标识信息存储单元215也进行该条件判断。即,例如具体地,标识信息存储单元215每经过了预定的期间便开始工作,判断在标识信息存储区域205B中存储的标识信息的数量是否减少到小于等于基准数,并且以减少到为条件,从请求存储区域205A检索一个或一个以上的等待处理的请求。通过这样,能够提高判断的频度,从而能够容易用标识信息填满标识信息存储区域205B。
此外,代之,在本第三变形例中,请求处理单元218-1也可以不进行条件判断,而仅标识信息存储单元215进行图10中所示的判断。由此,标识信息存储单元215-1~n能够使在响应于请求的原本处理中所耗费的时间增加,从而是有效的。
图11是关于本实施方式的第四变形例,示出标识信息存储单元215的工作的流程图。在本第四变形例中,关于请求处理单元218-1的工作,由于与在图5、其变形例等中所说明的内容是相同的,所以省略说明。此外,关于标识信息存储单元215的工作,也与参照图4说明的S400至S445的工作是相同的。也就是说,标识信息存储单元215,从请求存储区域205A检索接收完毕的请求并将其标识信息存储在标识信息存储区域205B中,并且更新状态存储区域205C的状态。并且,标识信息存储单元215判断检索出的请求的数量是否等于检索的请求的上限数(S445)。
以下的处理与参照图5所说明的处理不同。如果检索出的标识信息的数量少于上限数(S445:否),则标识信息存储单元215计算信息填充率,该信息填充率是每工作一次检索的标识信息的数量相对于上限数的比例(S1000)。信息填充率,也可以根据在两次或两次以上的预定次数的工作中所检索的标识信息的数量的平均来计算。也就是说,例如,标识信息存储单元215在S430的状态信息的更新中,将在从最近开始数预定的次数的检索工作中所检索的标识信息的数量的历史存储在状态存储区域205C中。并且,在S1000的信息填充率的计算处理中,标识信息存储单元215通过根据这些标识信息的数量的历史,计算在一次工作中所检索的标识信息的数量的平均,并将其除以上述上限数,来计算信息填充率。
并且,接着,标识信息存储单元215,根据该信息填充率,计算并设定标识信息存储单元215进行工作的时间间隔(S1010)。例如,标识信息存储单元215以该信息填充率越高为条件,与该信息填充率越低的情况相比较,将该时间间隔设定得越短。这是因为,在信息填充率高的情况下,等待处理的请求仍残留在请求存储区域205A中的可能性高,即使立即开始下一次的检索工作、也能够检索出较多的标识信息的可能性高。
并且,接着,标识信息存储单元215判断是否经过了所设定的该时间间隔(S1020)。如果经过了该时间间隔(S1020:是),则标识信息存储单元215返回到S400的处理,开始下一次检索的处理。如果未经过该时间间隔(S1020:否),则标识信息存储单元215判断是否从其他工作线程、即在此是请求处理单元218-1~n的任意一个接收到开始工作的指示(S1030)。在接收到开始工作的指示的情况下(S1030:是),标识信息存储单元215返回到S410的处理,检索下一请求。在未接收到的情况下(S1030:否),标识信息存储单元215返回到S1020的处理,判断是否经过了设定时间。
以上,根据该第四变形例,标识信息存储单元215根据信息填充率预测请求存储区域205A的当前的状态、邻近的将来的状态等,在预测为在每一次工作中能够检索的标识信息的数量较多的情况下,频繁地进行工作。由此,能够不仅根据标识信息存储区域205B的状态,而且根据请求存储区域205A的状态调整请求检索的频度,从而使标识信息存储单元的工作高效化。作为该第四变形例的进一步变形,如果根据web站点的应用状况进一步细致地改变工作频度,则能够调整标识信息存储单元215的工作频度从而实现进一步的性能提高。例如,依服务器装置20能够同时接收的请求的总数、实现服务器装置20的系统软件的种类等的不同,有时标识信息存储单元215发布的每一次系统调用的所需时间、即用于从请求存储区域205A检索请求的标识信息的所需时间会不同。
如果系统调用的所需时间极短,则即使信息填充率低,因以高频度调出系统调用而导致的性能降低也小。另一方面,在系统调用的所需时间长的情况下,期望仅在信息填充率高的情况下以低频度调出系统调用。从以上观点来看,在该所需时间越短的情况下,与该所需时间越长的情况相比较,标识信息存储单元215将时间间隔设定得越短。该设定,可以在服务器装置20的启动时或者复位时由标识信息存储单元215预先进行,也可以在应用中适宜改变。
如上所述,在第四变形例中,由于可以从信息填充率这样的观点出发调整标识信息存储单元215的工作,所以能够灵活地应对web站点运营上的各种环境,从而使服务器装置20的工作高效化。
图12示出作为本实施方式的服务器装置20发挥作用的计算机的硬件结构的一例。服务器装置20,具备利用主控制器1082相互连接的至少一个CPU 210以及具有RAM 1020以及图形控制器1075的CPU外围单元。该图12中的服务器装置20采用SMP(Symmetric Multiple Processor,对称多处理器)型的体系结构。即,CPU 210以RAM 1020为中心对称地配置,并且各个CPU 210共享地访问RAM 1020。此外,服务器装置20包括输入输出单元和传统输入输出单元,输入输出单元具有通过输入输出控制器1084连接至主控制器1082的通信接口220、存储装置(例如硬盘驱动器)200及CD-ROM驱动器1060,传统输入输出单元包括连接至输入输出控制器1084的ROM 1010、软盘驱动器1050以及输入输出芯片1070。
主控制器1082将RAM 1020与以较高传输速率访问RAM 1020的CPU 210及图形控制器1075相连接。CPU 210根据存储在ROM 1010及RAM 1020中的程序进行工作,进行各单元的控制。图形控制器1075获取CPU 210等在设置于RAM 1020内的帧缓冲器上生成的图像数据,并且使其显示在显示装置1080上。代之,图形控制器1075也可以将存储CPU 210等所生成的图像数据的帧缓冲器包含在其内部。
输入输出控制器1084将主控制器1082与作为相对高速的输入输出装置的通信接口220、存储装置200以及CD-ROM驱动器1060相连接。通信接口220经由网络与外部的装置通信。存储装置200存储服务器装置20所使用的程序及数据。CD-ROM驱动器1060从CD-ROM 1095读取程序或数据,并且提供给RAM 1020或存储装置200。
此外,在输入输出控制器1084上,连接有ROM 1010、软盘驱动器1050、输入输出芯片1070等相对低速的输入输出装置。ROM 1010存储在服务器装置20的启动时由CPU 210所执行的引导程序、依赖于服务器装置20的硬件的程序等。软盘驱动器1050从软盘1090读取程序或数据,并且经由输入输出芯片1070提供给RAM 1020或存储装置200。输入输出芯片1070连接软盘1090,经由例如并行端口、串行端口、键盘端口、鼠标端口等连接各种输入输出装置。
提供给服务器装置20的程序,存储在软盘1090、CD-ROM 1095或IC卡等记录介质中并由使用者来提供。程序经由输入输出芯片1070以及/或者输入输出控制器1084从记录介质被读出,并且被安装在服务器装置20上来执行。程序使服务器装置20等工作从而执行的操作,由于与在图1至图11中所说明的服务器装置20中的工作相同,所以省略说明。
以上所示的程序,也可以存储在外部的存储介质中。作为存储介质,除了软盘1090、CD-ROM 1095之外,还能够使用DVD、PD等光学记录介质、MD等光磁记录介质、带介质、IC卡等半导体存储器等。此外,也可以使用在连接到了专用通信网络、因特网等的服务器系统中设置的硬盘或者RAM等存储装置作为记录介质,经由网络将程序提供至服务器装置20。
以上,如根据本实施方式以及各种变形例所说明的,如果采用服务器装置20,则即使在同时并行地接收到多个请求的情况下,也能够有效地将它们分配给各线程从而使处理高效化。本申请的发明人使该服务器装置20作为web服务器工作并对其性能进行了计测,其结果,能够将模拟地使web事务发生的基准程序的处理效率提高达6%(用通常的改进技术,1%的性能提高也是极其困难的)。此外,在压力测试中,观察到了30%左右的性能提高。
以上,虽然使用实施方式对本发明进行了说明,但是本发明的技术范围并不限于在上述实施方式中所记载的范围。对于本领域技术人员来说很明显,可以对上述实施方式加以多种变形或改进。例如,请求处理单元218-1~n以及标识信息存储单元215也可以不分别由单独的线程实现,而是实现请求处理单元218-1~n的工作线程中的一个也可以兼作实现标识信息存储单元215的线程。即,在此情况下,请求处理单元218-1~n可以代替在图5的S550中所示的工作的开始的指示,而进行一次图4中所示的重复处理。根据权利要求的记载可以看出,加以这样的变形或改进而得到的方式也包含在本发明的技术范围内。
Claims (13)
1.一种响应于从客户端装置接收到的请求进行工作的服务器装置,具备:
存储装置,其在系统存储空间中具有将从客户端装置接收到的请求与其标识信息对应地存储起来的请求存储区域,并且在用户存储空间中具有用于存储等待处理的请求的标识信息的标识信息存储区域;
标识信息存储单元,其以在前述标识信息存储区域中存储的标识信息的数量减少到小于等于预定的基准数的情况为条件,从前述请求存储区域检索一个或一个以上的等待处理的请求,并将其标识信息存储在前述标识信息存储区域;以及
多个请求处理单元,其相互并行地进行工作,并且以能够从前述标识信息存储区域获得标识信息为条件,从前述请求存储区域获得由该标识信息标识的请求,并进行响应于该请求的处理。
2.根据权利要求1所述的服务器装置,其中:
前述标识信息存储单元以及前述多个请求处理单元的各个,由相互不同的多个线程的各个实现;
至少一个前述请求处理单元,在从前述标识信息存储区域获得标识信息的结果是在前述标识信息存储区域中存储的标识信息的数量减少到小于等于前述基准数的情况下,向前述标识信息存储单元指示工作的开始;
前述标识信息存储单元,从任意一个前述请求处理单元接收指示而开始工作,并且从前述请求存储区域检索一个或一个以上的等待处理的请求,并将其标识信息存储在前述标识信息存储区域中。
3.根据权利要求2所述的服务器装置,其中:
前述存储装置在用户存储空间中进一步具有状态存储区域,该状态存储区域用于存储前述标识信息存储区域的状态,该前述标识信息存储区域的状态基于在前述标识信息存储区域中存储的标识信息的数量以及从前述标识信息存储区域获得的标识信息的数量中的至少一方;
前述标识信息存储单元,响应于在前述标识信息存储区域中新存储了标识信息的情况,基于新存储的标识信息的数量更新在前述状态存储区域中存储的状态;前述请求处理单元,响应于从前述标识信息存储区域获得了标识信息的情况,基于所获得的标识信息的数量更新在前述状态存储区域中存储的状态,并且根据更新后的状态,判断在前述标识信息存储区域中存储的标识信息的数量是否减少到小于等于前述基准数。
4.根据权利要求3所述的服务器装置,其中:
前述请求处理单元,响应于从前述标识信息存储区域获得了标识信息的情况,根据在前述状态存储区域中存储的状态,判断在前一次由前述标识信息存储单元在前述标识信息存储区域中存储了标识信息之后,从前述标识信息存储区域获得的标识信息的数量是否达到前一次在前述标识信息存储区域中存储的标识信息的数量。
5.根据权利要求3所述的服务器装置,其中:
前述标识信息存储单元,关于表示工作的开始的一次指示,以预定的数值为上限数从前述请求存储区域检索一个或一个以上的请求,并将其标识信息存储在前述标识信息存储区域中;
前述请求处理单元,响应于从前述标识信息存储区域获得了标识信息的情况,根据在前述状态存储区域中存储的状态,判断在前一次由前述标识信息存储单元在前述标识信息存储区域中存储了标识信息之后,从前述标识信息存储区域获得的标识信息的数量是否达到前述上限数。
6.根据权利要求3所述的服务器装置,其中:
前述状态存储区域,存储不同的两个或两个以上的时刻的各个下的、在前述标识信息存储区域中存储的标识信息的数量;
前述请求处理单元,响应于从前述标识信息存储区域获得了标识信息的情况,根据在前述状态存储区域中存储的状态,计算每单位时间从前述标识信息存储区域获得标识信息的数量的速度,并基于该速度,计算预测时刻,并进行在该预测时刻使前述标识信息存储单元的工作开始的设定,该预测时刻是在前述标识信息存储区域中存储的标识信息的数量减少到小于等于前述基准数的时刻。
7.根据权利要求1所述的服务器装置,其中:
前述标识信息存储单元,进而以预先设定的时间间隔进行工作,并且关于一次工作,以预定的数值为上限数从前述请求存储区域检索一个或一个以上的请求,并将其标识信息存储在前述标识信息存储区域中;并且
以信息填充率越高为条件,与该信息填充率越低的情况相比较,将前述时间间隔设定得越短,该信息填充率是每工作一次所检索的标识信息的数量相对于前述上限数的比例。
8.根据权利要求7所述的服务器装置,其中:
预先设定用于从前述请求存储区域检索请求的标识信息的所需时间;
前述标识信息存储单元,在该所需时间越小的情况下,与该所需时间越大的情况相比较,将前述时间间隔设定得越短。
9.根据权利要求2所述的服务器装置,其中:
前述标识信息存储单元,每经过预定的期间便开始工作,判断在前述标识信息存储区域中存储的标识信息的数量是否减少到小于等于预定的基准数,并且以减少到为条件,从前述请求存储区域检索一个或一个以上的等待处理的请求,并将其标识信息存储在前述标识信息存储区域中。
10.根据权利要求1所述的服务器装置,其中:
前述标识信息存储单元,发布系统调用从而从前述请求存储区域检索请求;
各个前述请求处理单元,不发布系统调用,而尝试从前述标识信息存储区域获得标识信息,并以能够获得为条件,发布系统调用从而从前述请求存储区域获得请求。
11.根据权利要求1所述的服务器装置,其中:
前述标识信息存储单元,在获得对于前述请求存储区域的访问的排他权之后,从前述请求存储区域检索请求;
各个前述请求处理单元,不获得对于前述请求存储区域的访问的排他权,而尝试从前述标识信息存储区域获得标识信息,并以能够获得为条件,获得前述请求存储区域内的区域的排他权,从而从前述请求存储区域获得请求,其中该前述请求存储区域内的区域是存储由所获得的该标识信息标识的所述请求的区域。
12.一种在服务器装置中响应于从客户端装置接收到的请求进行处理的方法,其中:
前述服务器装置具有:
存储装置,该存储装置在系统存储空间中具有将从客户端装置接收到的请求与其标识信息对应地存储起来的请求存储区域,并且在用户存储空间中具有用于存储等待处理的请求的标识信息的标识信息存储区域;
该方法包括:
利用前述服务器装置的标识信息存储单元,以在前述标识信息存储区域中存储的标识信息的数量减少到小于等于预定的基准数的情况为条件,从前述请求存储区域检索一个或一个以上的等待处理的请求,并使其标识信息存储在前述标识信息存储区域中的步骤;以及
使前述服务器装置的多个请求处理单元相互并行地进行工作,并且以能够从前述标识信息存储区域获得标识信息为条件,从前述请求存储区域获得由该标识信息标识的请求,并进行响应于该请求的处理的步骤。
13.一种程序,其使计算机作为响应于从客户端装置接收到的请求进行工作的服务器装置发挥作用,该程序使前述计算机作为以下部件发挥作用:
存储装置,其在系统存储空间中具有将从客户端装置接收到的请求与其标识信息对应地存储起来的请求存储区域,并且在用户存储空间中具有用于存储等待处理的请求的标识信息的标识信息存储区域;
标识信息存储单元,其以在前述标识信息存储区域中存储的标识信息的数量减少到小于等于预定的基准数的情况为条件,从前述请求存储区域检索一个或一个以上的等待处理的请求,并将其标识信息存储在前述标识信息存储区域;以及
多个请求处理单元,其相互并行地进行工作,并且以能够从前述标识信息存储区域获得标识信息为条件,从前述请求存储区域获得由该标识信息标识的请求,并进行响应于该请求的处理。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP125505/2007 | 2007-05-10 | ||
JP2007125505 | 2007-05-10 | ||
PCT/JP2008/058658 WO2008140053A1 (ja) | 2007-05-10 | 2008-05-09 | 受信したリクエストに応じて動作するサーバ装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101681273A true CN101681273A (zh) | 2010-03-24 |
CN101681273B CN101681273B (zh) | 2013-01-09 |
Family
ID=39970509
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200880015357XA Expired - Fee Related CN101681273B (zh) | 2007-05-10 | 2008-05-09 | 响应于所接收的请求进行工作的服务器装置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8078674B2 (zh) |
EP (1) | EP2157512A4 (zh) |
JP (1) | JP5005028B2 (zh) |
KR (1) | KR101103905B1 (zh) |
CN (1) | CN101681273B (zh) |
WO (1) | WO2008140053A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106302570A (zh) * | 2015-05-14 | 2017-01-04 | 阿里巴巴集团控股有限公司 | 一种请求处理方法及装置 |
CN108139932A (zh) * | 2015-10-16 | 2018-06-08 | 高通股份有限公司 | 关闭关键执行路径的任务信令 |
CN109491895A (zh) * | 2018-10-26 | 2019-03-19 | 北京车和家信息技术有限公司 | 服务器压力测试方法及装置 |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8078674B2 (en) * | 2007-05-10 | 2011-12-13 | International Business Machines Corporation | Server device operating in response to received request |
JP5860634B2 (ja) * | 2011-08-23 | 2016-02-16 | 任天堂株式会社 | 情報処理システム、情報処理方法、サーバプログラム、サーバ装置、および、サーバシステム |
US20150113602A1 (en) * | 2012-05-08 | 2015-04-23 | Serentic Ltd. | Method and system for authentication of communication and operation |
CN106657187A (zh) * | 2015-10-30 | 2017-05-10 | 南京中兴新软件有限责任公司 | 报文处理的方法及装置 |
JP7034681B2 (ja) * | 2017-11-27 | 2022-03-14 | アズビル株式会社 | 通信制御装置 |
JP7015203B2 (ja) * | 2018-04-11 | 2022-02-02 | 株式会社日立製作所 | アプリの実行方法 |
US10623328B1 (en) * | 2018-06-08 | 2020-04-14 | West Corporation | Message brokering for asynchronous status updates |
CN109271869B (zh) * | 2018-08-21 | 2023-09-05 | 平安科技(深圳)有限公司 | 人脸特征值提取方法、装置、计算机设备及存储介质 |
CN109391682B (zh) * | 2018-09-14 | 2023-05-12 | 联想(北京)有限公司 | 一种信息处理方法及服务器集群 |
CN109918249A (zh) * | 2019-03-12 | 2019-06-21 | 浪潮商用机器有限公司 | 一种服务器上设备信息的收集方法、装置和介质 |
CN110430070B (zh) * | 2019-07-19 | 2022-07-22 | 北京奇艺世纪科技有限公司 | 一种服务状态分析方法、装置、服务器、数据分析设备及介质 |
CN112416583B (zh) * | 2020-11-17 | 2024-07-05 | 平安科技(深圳)有限公司 | 高频请求处理方法、装置、电子设备及存储介质 |
CN116089437B (zh) * | 2022-11-30 | 2023-10-03 | 荣耀终端有限公司 | 一种数据处理方法及服务器 |
Family Cites Families (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0520100A (ja) | 1991-07-11 | 1993-01-29 | Mitsubishi Electric Corp | オペレーテイングシステム |
US5838910A (en) * | 1996-03-14 | 1998-11-17 | Domenikos; Steven D. | Systems and methods for executing application programs from a memory device linked to a server at an internet site |
US6981215B1 (en) * | 1998-12-31 | 2005-12-27 | Microsoft Corp. | System for converting event-driven code into serially executed code |
US7171473B1 (en) * | 1999-11-17 | 2007-01-30 | Planet Exchange, Inc. | System using HTTP protocol for maintaining and updating on-line presence information of new user in user table and group table |
US20020055982A1 (en) * | 2000-11-03 | 2002-05-09 | The Board Of Regents Of The University Of Nebraska | Controlled server loading using L4 dispatching |
US7051330B1 (en) * | 2000-11-21 | 2006-05-23 | Microsoft Corporation | Generic application server and method of operation therefor |
US7499966B2 (en) * | 2001-08-23 | 2009-03-03 | International Business Machines Corporation | Web server architecture for improved performance |
US20030065701A1 (en) * | 2001-10-02 | 2003-04-03 | Virtual Media, Inc. | Multi-process web server architecture and method, apparatus and system capable of simultaneously handling both an unlimited number of connections and more than one request at a time |
US20030156547A1 (en) * | 2002-02-15 | 2003-08-21 | Exanet. Inc. | System and method for handling overload of requests in a client-server environment |
CA2379090A1 (en) * | 2002-03-27 | 2003-09-27 | Ibm Canada Limited-Ibm Canada Limitee | Efficient server handling of multiple requests from a web browser |
US7448049B1 (en) * | 2002-10-18 | 2008-11-04 | Crossroads Systems, Inc. | System and method of supporting kernel functionality |
KR100451211B1 (ko) * | 2002-10-31 | 2004-10-13 | 엘지전자 주식회사 | 이동 컴퓨팅 환경에서 트랜잭션 캐시 일관성 유지 시스템및 방법 |
US7237242B2 (en) | 2002-12-31 | 2007-06-26 | International Business Machines Corporation | Dynamic thread pool tuning techniques |
US7587510B1 (en) * | 2003-04-21 | 2009-09-08 | Charles Schwab & Co., Inc. | System and method for transferring data between a user space and a kernel space in a server associated with a distributed network environment |
JP2005115600A (ja) * | 2003-10-07 | 2005-04-28 | Hitachi Ltd | 情報処理装置及び方法 |
JP4873852B2 (ja) * | 2004-02-26 | 2012-02-08 | 株式会社リコー | 第一の通信装置、情報処理装置、情報処理プログラム、記録媒体 |
US7577707B2 (en) * | 2004-04-21 | 2009-08-18 | International Business Machines Corporation | Method, system, and program for executing data transfer requests |
US7657892B2 (en) * | 2004-05-20 | 2010-02-02 | Bea Systems, Inc. | System and method for application server with self-tuned threading model |
US8370448B2 (en) * | 2004-12-28 | 2013-02-05 | Sap Ag | API for worker node retrieval of session request |
JP4151978B2 (ja) * | 2005-05-25 | 2008-09-17 | インターナショナル・ビジネス・マシーンズ・コーポレーション | サーバ装置、管理方法およびプログラム |
US8713180B2 (en) * | 2005-06-22 | 2014-04-29 | Cisco Technology, Inc. | Zero-copy network and file offload for web and application servers |
US8005943B2 (en) * | 2005-10-12 | 2011-08-23 | Computer Associates Think, Inc. | Performance monitoring of network applications |
US8347293B2 (en) * | 2005-10-20 | 2013-01-01 | Network Appliance, Inc. | Mutual exclusion domains to perform file system processes on stripes |
EP1960875A1 (en) * | 2005-12-15 | 2008-08-27 | TELEFONAKTIEBOLAGET LM ERICSSON (publ) | A method and apparatus for load distribution in multiprocessor servers |
JP4842690B2 (ja) * | 2006-04-14 | 2011-12-21 | 富士通株式会社 | アプリケーション管理プログラム、アプリケーション管理方法およびアプリケーション管理装置 |
JP5189974B2 (ja) * | 2006-04-26 | 2013-04-24 | 日本電信電話株式会社 | 負荷制御装置およびその方法 |
US8849981B2 (en) * | 2006-12-01 | 2014-09-30 | Ca, Inc. | Response time benchmarking |
US20080172679A1 (en) * | 2007-01-11 | 2008-07-17 | Jinmei Shen | Managing Client-Server Requests/Responses for Failover Memory Managment in High-Availability Systems |
US7769931B1 (en) * | 2007-02-15 | 2010-08-03 | Emc Corporation | Methods and systems for improved virtual data storage management |
US8078674B2 (en) * | 2007-05-10 | 2011-12-13 | International Business Machines Corporation | Server device operating in response to received request |
-
2008
- 2008-05-05 US US12/114,877 patent/US8078674B2/en not_active Expired - Fee Related
- 2008-05-09 JP JP2009514153A patent/JP5005028B2/ja not_active Expired - Fee Related
- 2008-05-09 KR KR1020097024128A patent/KR101103905B1/ko not_active IP Right Cessation
- 2008-05-09 CN CN200880015357XA patent/CN101681273B/zh not_active Expired - Fee Related
- 2008-05-09 WO PCT/JP2008/058658 patent/WO2008140053A1/ja active Application Filing
- 2008-05-09 EP EP08752541A patent/EP2157512A4/en not_active Withdrawn
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106302570A (zh) * | 2015-05-14 | 2017-01-04 | 阿里巴巴集团控股有限公司 | 一种请求处理方法及装置 |
CN108139932A (zh) * | 2015-10-16 | 2018-06-08 | 高通股份有限公司 | 关闭关键执行路径的任务信令 |
CN108139932B (zh) * | 2015-10-16 | 2021-08-24 | 高通股份有限公司 | 关闭关键执行路径的任务信令 |
CN109491895A (zh) * | 2018-10-26 | 2019-03-19 | 北京车和家信息技术有限公司 | 服务器压力测试方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
JPWO2008140053A1 (ja) | 2010-08-05 |
US8078674B2 (en) | 2011-12-13 |
EP2157512A4 (en) | 2012-10-10 |
CN101681273B (zh) | 2013-01-09 |
KR20100019453A (ko) | 2010-02-18 |
EP2157512A1 (en) | 2010-02-24 |
JP5005028B2 (ja) | 2012-08-22 |
US20080281906A1 (en) | 2008-11-13 |
KR101103905B1 (ko) | 2012-01-12 |
WO2008140053A1 (ja) | 2008-11-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101681273B (zh) | 响应于所接收的请求进行工作的服务器装置 | |
US20220083395A1 (en) | Scheduling system for computational work on heterogeneous hardware | |
US8752055B2 (en) | Method of managing resources within a set of processes | |
US20050097384A1 (en) | Data processing system with fabric for sharing an I/O device between logical partitions | |
JP6447217B2 (ja) | 実行情報通知プログラム、情報処理装置および情報処理システム | |
US8473427B2 (en) | Block allocation times in a computer system | |
JP2008140120A (ja) | 計算資源管理プログラム、計算資源管理装置および分散処理システム | |
CN101366012A (zh) | 用于多处理器系统中的中断分配的方法和系统 | |
JP2010282420A (ja) | 管理計算機、リソース管理方法、リソース管理プログラム、記録媒体および情報処理システム | |
US9049193B2 (en) | Method and system for distributing resource-availability information within a distrubited computer system | |
US8914582B1 (en) | Systems and methods for pinning content in cache | |
US9807008B2 (en) | Tournament scheduling | |
US10908963B2 (en) | Deterministic real time business application processing in a service-oriented architecture | |
CN103885820A (zh) | 信息处理装置和信息处理方法 | |
CN108667740B (zh) | 流量控制的方法、装置及系统 | |
CN112256395B (zh) | 安全内存分配、虚拟cpu调度方法及相关装置 | |
US7890958B2 (en) | Automatic adjustment of time a consumer waits to access data from queue during a waiting phase and transmission phase at the queue | |
WO2000028418A1 (en) | Scheduling resource requests in a computer system | |
US8589551B2 (en) | Multiprocessor computer and network computing system processing use and provision of hardware resource via a network | |
US20240160487A1 (en) | Flexible gpu resource scheduling method in large-scale container operation environment | |
JP6612458B2 (ja) | 計算機システム、管理計算機、および記録媒体 | |
JP2018018275A (ja) | 情報処理装置及びプログラム | |
WO2017149725A1 (ja) | 接続管理システムおよび接続管理方法 | |
JP2000242511A (ja) | 資源管理方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130109 Termination date: 20160509 |