CN101448027A - 一种流水线Web服务器的系统及其工作方法 - Google Patents

一种流水线Web服务器的系统及其工作方法 Download PDF

Info

Publication number
CN101448027A
CN101448027A CN 200810247388 CN200810247388A CN101448027A CN 101448027 A CN101448027 A CN 101448027A CN 200810247388 CN200810247388 CN 200810247388 CN 200810247388 A CN200810247388 A CN 200810247388A CN 101448027 A CN101448027 A CN 101448027A
Authority
CN
China
Prior art keywords
virtual machine
stage
web server
pipelining
request
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
Application number
CN 200810247388
Other languages
English (en)
Other versions
CN101448027B (zh
Inventor
王若倪
张玉放
孙毓忠
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Zhongke Flux Technology Co ltd
Original Assignee
Institute of Computing Technology of CAS
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Institute of Computing Technology of CAS filed Critical Institute of Computing Technology of CAS
Priority to CN 200810247388 priority Critical patent/CN101448027B/zh
Publication of CN101448027A publication Critical patent/CN101448027A/zh
Application granted granted Critical
Publication of CN101448027B publication Critical patent/CN101448027B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明涉及一种流水线Web服务器的系统及其工作方法,系统包括分布式虚拟机监控模块,用于对Web服务器的部件进行虚拟化,创建多个虚拟机;虚拟机,用于处理接收的客户端发送的请求或上一流水级发送的请求,在将处理结果作为一个请求发送给下一流水级时,向Web服务器控制模块申请下一流水级,接收到Web服务器控制模块回复后,将请求发送给回复指定的下一流水级的虚拟机;Web服务器控制模块,用于维护记录可用虚拟机的虚拟机信息列表,在接收到申请时,运用调度策略从虚拟机信息列表中选择下一流水级的虚拟机,并回复虚拟机。本发明能够在流水线基础上提高可靠性、增加资源流动和实现动态流水线。

Description

一种流水线Web服务器的系统及其工作方法
技术领域
本发明涉及网络服务器,尤其涉及一种流水线Web服务器的系统及其工作方法。
背景技术
近年来,提高网络服务器的性能已经成为处理以网络为基础的服务的关键问题。很多在线事务处理和分布式服务的关键特征开始统治了高性能Web服务器的设计,因为预料这些服务器会成为提供网络为基础的服务的瓶颈。为了提高web服务器的性能有三类技术被提了出来:软件扩展,硬件扩展和基于簇(cluster)的扩展。软件和硬件扩展技术可增强单点服务器的性能。通常,软件为基础的方法会尽力改进Web服务器的缓冲(cache)命中率,从而降低磁盘访问延迟以满足用户的需求。另一方面,硬件扩展通过向系统中加入更多的处理器和内存提供附加的计算能力。而以簇为基础的方案通过利用单一域名下的由同构或异构节点组成的机群来解决问题。这种方法被Google和e-Bay有效地使用了。
针对Web服务器人们已经提出了4种体系结构。
第一种为MP(Multi-Process,多进程)模型。该模型有一个进程池,每个进程被用来执行与服务一个请求相关的基本操作。因为使用了多进程,很多http请求能够并发地被服务。Apache Web服务器当初就采用的是MP模型。这种模型的缺点是进程间难以共享任何全局信息,例如共享的缓冲信息。与其它模型相比,一个MP模型的Web服务器需要更多的内存以维持每个进程有同等的缓冲大小。所以,该种模型总的性能要低于其它的模型。
第二种为MT(Multi-Thread,多线程)模型。该模型很多有同一个共享地址空间的核心线程(kernel thread)组成。每个线程处理一个客户的请求,独立地执行请求处理的步骤。这种模型的优点是全部线程能够共享任何全局信息。特别地,全部线程共享数据缓冲。但是,不是全部操作系统支持核心线程,同时,线程间共享数据缓冲可能导致很高的同步开销。广泛使用的Apache Web服务器就升级到了MT模型。
第三种是SPED(Single-Process Event-Driven,单进程事件驱动)模型。该种模型使用非阻塞I/O操作。SPED能够避免上下文切换和进程/线程间的同步开销。这个模型已经被Zeus Technology公司实现。但是,这个模型中的非阻塞I/O操作实际上也可能阻塞,特别是在由于目前操作系统的限制执行磁盘相关的操作时。因此,对于磁盘依赖负载SPED模型没有表现得比MT模型好。
第四种是AMPED(Asynchronous Multi-Process Event-Driven,异步多进程事件驱动)模型。该种模型可以减轻SPED模型的缺点,其原型是Rice大学的Flash服务器。它由一个主Web服务器进程和很多主要用来处理I/O操作的帮助线程组成。由于多个帮助者服务面向磁盘的请求,主Web服务器进程就可仅处理缓冲击中请求。在该模型中,IPC(进程间通信)和mmap(将文件或其它对象映射进内存的系统调用)用来做信息交换。但是,这四个模型都是为单CPU系统设计的,没有考虑到硬件技术的最新发展——多核SMP和SoC技术。
近来,Intel和AMD都争相推出双核甚至4核的CPU以瞄准高性能服务器市场;同时,IBM和Sony等公司联合推出了有多达8个处理器单元的Cell芯片,它们掀起了高性能服务器向多核/多线程技术的转移,可以预见4核或者8核SMP不久将推向市场。另一方面,随着深亚微米技术的蓬勃发展,SoC体系结构在不久的将来将成为现实,到那时拥有几十亿只晶体管的SoC将可能统治高性能计算领域。例如,如果技术能够降低到35nm,制造拥有多达32/64处理器的SoC将成为可能。因此,网络服务器必须采用多核SMP与SoC技术。这就要求网络服务器的体系结构必须做出变革,以迎接新的硬件技术的发展。
为此,一种新的Multi-Thread Pipelined(多线程流水线)Web服务器体系结构被提了出来,它利用了MT模型的优点,但是通过限制进程数量减轻了同步的开销。
SEDA(Staged Event Driven Architecture,分级事件驱动架构)是加州大学伯克利分校研究的一套优秀的高性能互联网服务器架构模型。其设计目标是:支持大规模并发处理、简化系统开发、支持处理监测、支持系统资源管理。
其主要工作原理为将任务分解到不同的级(stage)中。每一级(stage)完成一部分单独的处理逻辑;各级之间性能隔离;独立进行负载调度。
SEDA模型的结构分为四个部分。
一个接受输入的事件队列(Event Queue)。
一个应用开发者编写的事件处理器(Event Handler)。
一个控制器,用于对执行过程进行控制,包括并发线程数量,批处理数量。
一个线程池(Thread Pool)用于并发处理。
请求的处理流程被划分成5个不同的流水级,接收的应用在每一级以队列的形式分级执行。每一级都可以被独立管理,每级之间可以串行也可以并行工作,或者两者兼有。事件队列使得每一级可以独立进行负载调度。
流水级的输入通过事件队列获得。流水级的输出会以事件形式推送到其他流水级的事件队列中。流水级之间的这种连接关系由应用开发人员指定。
总的来说,SEDA架构将应用的整个处理过程分割为多个流水级。每个流水级可以独立进行开发。同时流水级之间通过事件队列来进行通信,可以降低耦合性。能够以很小的成本来适应将来的系统逻辑变化。同时系统提供了标准的资源控制,使得应用开发人员只需要专注于实现事件处理器的内部逻辑。而无须关注多线程、资源共享并且同时可以在运行时对于每一个流水级的运行情况进行监测以及调整。
但是,以上方法存在如下局限性。
第一,事件队列尽管减少了模块间的耦合性,但是会降低响应速度;
第二,没有足够可靠性上的隔离机制;
第三,流水级之间的不平衡性导致资源利用率低;
第四,流水线阻塞影响性能。
发明内容
为了解决上述的技术问题,本发明提供了流水线Web服务器的系统及其工作方法,能够在流水线基础上提高可靠性、增加资源流动和实现动态流水线。
本发明公开了一种流水线Web服务器的系统,包括
分布式虚拟机监控模块,用于对所述Web服务器的部件进行虚拟化,创建多个虚拟机;
所述虚拟机,用于处理接收的客户端发送的请求或上一流水级发送的请求,在将处理结果作为一个请求发送给下一流水级时,向Web服务器控制模块申请下一流水级,接收到所述Web服务器控制模块回复后,将所述请求发送给所述回复指定的下一流水级的虚拟机;
所述Web服务器控制模块,用于维护记录可用虚拟机的虚拟机信息列表,在接收到虚拟机发送的申请下一流水级的申请时,运用调度策略从所述虚拟机信息列表中选择下一流水级的虚拟机,并将选择的下一流水级的虚拟机的信息回复给所述虚拟机。
所述虚拟机还用于在确定发送的请求被下一流水级处理完成时,丢弃所述请求。
所述虚拟机还用于周期地向所述Web服务器控制模块发送心跳消息;
所述Web服务器控制模块还用于当未在预设时间内接收到所述虚拟机的心跳消息时,将所述虚拟机从所述虚拟机信息列表中删除。
所述虚拟机进一步用于在接收到客户端发送的请求时,解析出URL,判断所述虚拟机的全局缓冲中是否有所述请求对应的表项,如果是,则获取文件并将文件发送给所述客户端,否则,向所述Web服务器控制模块申请下一流水级,接收到所述Web服务器控制模块回复后,以所述URL为处理结果,将所述URL作为一个请求发送给所述回复指定的下一流水级的虚拟机;在接收到所述请求对应的http响应后,将所述响应发送给所述客户端。
所述虚拟机在获取文件并将文件发送给所述客户端时进一步用于判断所述文件是否在所述虚拟机内,如果是,则将所述文件发送给所述客户端;否则,建立同所述文件所在虚拟机间的连接,将所述文件取回到所述虚拟机,将所述文件发送给所述客户端。
所述虚拟机进一步用于在接收到上一流水级发送的URL时,解析URL,获得对应的文件路径,向所述Web服务器控制模块申请下一流水级,接收到所述Web服务器控制模块回复后,以所述文件路径为处理结果,将所述文件路径作为一个请求发送给所述回复指定的下一流水级的虚拟机。
所述虚拟机进一步用于在接收到上一流水级发送的文件路径时,读取所述文件,将文件发送给接收对应客户端请求的虚拟机。
所述虚拟机还用于在接收到上一流水级的请求时,回复第一确认消息;在接收到向下一流水级发送请求对应的第一确认消息或作为流水线最后一流水级处理完成后,向上一流水级发送第二确认消息;
所述虚拟机在确定发送的请求被下一流水级执行完成时进一步用于在接收到发送请求对应的第二确认消息时,确定发送的请求被下一流水级处理完成。
所述Web服务器控制模块进一步包括:资源管理模块、系统可用性模块、资源策略模块;
所述资源管理模块,用于向所述资源策略模块提供虚拟机信息;
所述系统可用性模块,用于维护记录可用虚拟机的虚拟机信息列表;
所述资源策略模块,用于根据所述虚拟机信息确定调度策略,在接收到所述申请时,运用所述调度策略从所述虚拟机信息列表中选择下一流水级的虚拟机,并回复所述虚拟机。
所述Web服务器控制模块进一步包括:辅助模块、系统可用性模块、资源策略模块;
所述辅助模块,用于向所述资源策略模块提供缓冲信息;
所述系统可用性模块,用于维护记录可用虚拟机的虚拟机信息列表;
所述资源策略模块,用于根据所述缓冲信息确定调度策略,在接收到所述虚拟机发送的申请下一流水级的申请时,运用所述调度策略从所述虚拟机信息列表中选择下一流水级的虚拟机,并回复所述虚拟机。
本发明还公开了一种流水线Web服务器的工作方法,包括:
步骤1,对所述Web服务器的部件进行虚拟化,创建多个虚拟机;
步骤2,虚拟机处理接收到的的客户端发送的请求或上一流水级发送的请求,如果需要将处理结果作为一个请求发送给下一流水级,则向Web服务器控制模块申请下一流水级;Web服务器控制模块运用调度策略从维护的虚拟机信息列表中选择下一流水级的虚拟机,并将选择的下一流水级的虚拟机的信息回复给所述虚拟机;所述虚拟机将所述请求发送给所述回复指定的下一流水级的虚拟机。
所述步骤2还包括:
步骤121,所述虚拟机在确定发送的请求被下一流水级处理完成时,丢弃所述请求。
所述步骤1后还包括:
步骤131,所述虚拟机周期地向所述Web服务器控制模块发送心跳消息;
步骤132,所述Web服务器控制模块未在预设时间内接收到所述虚拟机的心跳消息后,将所述虚拟机从所述虚拟机信息列表中删除。
所述步骤2进一步包括:
步骤141,在接收到客户端发送的请求时,解析出URL,判断所述虚拟机的全局缓冲中是否有所述请求对应的表项,如果是,执行步骤142,否则执行步骤143;
步骤142,获取文件并将所述文件发送给所述客户端,
步骤143,向所述Web服务器控制模块申请下一流水级,Web服务器控制模块运用调度策略从维护的虚拟机信息列表中选择下一流水级的虚拟机,并将选择的下一流水级的虚拟机的信息回复给所述虚拟机,所述虚拟机以所述URL为处理结果,将所述URL作为一个请求发送给所述回复指定的下一流水级的虚拟机。
所述步骤142进一步包括:
步骤151,判断所述文件是否在所述虚拟机内,如果是,则执行步骤152,否则,执行步骤153;
步骤152,将所述文件发送给所述客户端;
步骤153,建立同所述文件所在虚拟机间的连接,将所述文件取回到所述虚拟机,将所述文件发送给所述客户端。
所述步骤143后还包括
步骤161,第二流水级的虚拟机在接收到URL,解析URL,获得对应的文件路径,向所述Web服务器控制模块申请下一流水级,Web服务器控制模块运用调度策略从维护的虚拟机信息列表中选择下一流水级的虚拟机,并将选择的下一流水级的虚拟机的信息回复给所述虚拟机,所述虚拟机以所述文件路径为处理结果,将所述文件路径作为一个请求发送给所述回复指定的下一流水级的虚拟机。
所述步骤161后还包括:
步骤171,第三流水级的虚拟机接收到上一流水级发送的文件路径,读取所述文件,将读取的文件发送给接收对应客户端请求的虚拟机。
所述步骤171后还包括接收客户端请求的虚拟机接收到客户端的请求对应的http响应后,将所述响应发送给所述客户端。
所述步骤2还包括,所述虚拟机在接收到上一流水级的请求时,回复第一确认消息;在接收到发送请求对应的第一确认消息或作为流水线最后一流水级执行完成处理后,向上一流水级发送第二确认消息;
所述步骤121进一步为在接收到发送请求对应的第二确认消息时,丢弃所述请求。
所述调度策略基于虚拟机信息或缓冲信息。
本发明的有益效果在于,通过资源的动态迁移可以更好地实现负载平衡、提高资源利用率、进行管理配置并且节能省电;由于各个流水级的虚拟机之间对资源的需求在时空上不同,虚拟机之间的资源划分可以超越操作系统对于进程或线程对资源的流动的限制:并且能够硬件复用和资源动态调度,实现了高吞吐量、高可靠性和高资源利用率。
附图说明
图1是本发明流水线Web服务器的系统结构图;
图2是请求进入服务器的实施流程图;
图3是连接可靠性工作流示意图;
图4是本发明流水线Web服务器的工作方法的流程图。
具体实施方式
下面结合附图,对本发明做进一步的详细描述。
本发明流水线划分为多个流水级,从而可以提高系统整体吞吐量。每一个流水级都在虚拟机上执行,采用动态流水线,利用基于虚拟机的资源动态流动,从而可以提高资源利用率。
本发明流水线Web服务器的系统结构如图1所示。
Web服务器包括:分布式虚拟机监控模块101、Web服务器控制模块102、虚拟机103。
分布式虚拟机监控模块101(DVMM),用于对所述Web服务器的部件进行虚拟化,创建多个虚拟机103。
分布式虚拟机监控模块101是Web服务器的基础模块,提供分布资源如CPU、内存、磁盘、网卡等部件的虚拟化,建立统一的资源空间及能力空间,创建和管理虚拟机103。从而实现计算资源在部件级的虚拟化,进而实现资源和能力在虚拟机103间的流动,在Web服务器内的流动;对于Web服务器提供各流水级虚拟机103以及提供虚拟机103相关信息的接口,Web服务器控制模块102能够利用上述接口重启虚拟机103,与虚拟机103建立连接获得虚拟机信息。
Web服务器控制模块102,用于维护记录可用虚拟机103的虚拟机信息列表,在接收到虚拟机103发送的申请时,运用调度策略从虚拟机信息列表中选择下一流水级的虚拟机,并回复该虚拟机103。
Web服务器控制模块102,通过接收虚拟机103的启动和可用信息,检测虚拟机故障,维护可用的虚拟机信息列表;根据虚拟机103发来的请求下一流水级的虚拟机的申请,运用调度策略,选择可用的下一流水级虚拟机,将其返回给请求的虚拟机103。
Web服务器控制模块102包括资源管理模块121、系统可用性模块122、辅助模块123、资源策略模块124。
资源管理模块121,用于向资源策略模块124提供虚拟机信息。
资源管理模块121中包括有虚拟机信息列表。
系统可用性模块122,用于维护记录可用虚拟机的虚拟机信息列表。
系统可用性模块122保证系统中虚拟机的可用性,当检测到虚拟机103故障时,通知分布式虚拟机监控模块101重启该虚拟机103。
系统可用性模块122保证系统中各级服务的可用性,当检测到错误时,重启服务或者虚拟机103来保证系统的服务可用性;在新建立的虚拟机103加入到系统中之前,需经过该模块的检测,确认可用后才能加到系统的虚拟机信息列表中。
辅助模块123,用于向资源策略模块124提供缓冲信息;
辅助模块123记录缓冲的相关信息,以实现协同缓冲相关的策略。
资源策略模块124,用于根据虚拟机信息和/或缓冲信息确定调度策略,在接收到虚拟机103的申请时,运用调度策略从虚拟机信息列表中选择下一流水级的虚拟机,并回复该虚拟机103。
虚拟机103,用于处理接收的客户端发送的请求或上一流水级发送的请求,在将处理结果作为一个请求发送给下一流水级时,向Web服务器控制模块102申请下一流水级,接收到Web服务器控制模块102回复后,将请求发送给回复指定的下一流水级的虚拟机。
虚拟机103还要定期向Web服务器控制模块102发送心跳消息,以表明自己可用。
虚拟机103的启动过程如下。
步骤1,当虚拟机103启动时,将自身信息告诉Web服务器控制模块102。
步骤2,Web服务器控制模块102将该虚拟机103的信息添加到虚拟机信息列表中。
步骤3,该虚拟机103将Web服务器控制模块102中已有的虚拟机信息信息列表下载到本地。
步骤4,当该虚拟机103自身初始化完成时,向Web服务器控制模块102发送自身上线信息,即表示该虚拟机103可用。
步骤5,Web服务器控制模块102收到虚拟机103的上线消息后,将其标识设为可用。
步骤6,Web服务器控制模块102将该虚拟机103的可用信息记录到虚拟机信息列表,并告诉虚拟机信息列表中其它虚拟机103该虚拟机103可用。
当请求进入服务器时,其具体实施过程如图2所述。
步骤S201,第一流水级的虚拟机103接收从客户端发来的请求,读进请求,将请求解析为URL。
客户端发送的请求及虚拟机发送的请求以数据包的形式。
在本级的全局缓冲中寻找是否有请求对应的表项,若存在且文件在本地,则将文件直接回传给客户端;若存在但不在本地,则根据本级虚拟机103与文件所在虚拟机103的连接,将文件取回本地并回传给客户端;若没有对应的表项,则向Web服务器控制模块102中的资源策略模块124申请下一流水级。
步骤S202,资源策略模块124根据调度策略选择下一流水级,然后将选择的下一级流水传给申请的第一流水级的虚拟机103。
步骤S203,第一流水级的虚拟机103根据收到的资源策略模块124传回的有关下一流水级的信息,用持久连接与下一流水级进行通信,URL为第一流水级的虚拟机103的处理结果,将URL作为一个请求传递到第二流水级的虚拟机103。
步骤S204,第二流水级虚拟机103接收第一流水级发送来的URL,对URL进行解析,得到对应的文件路径,并向资源策略模块124申请下一流水级的虚拟机103。
步骤S205,资源策略模块124根据调度策略选择下一流水级的虚拟机103,然后将选择的下一流水级的虚拟机103传给请求的第二流水级的虚拟机103。
步骤S206,第二流水级的虚拟机103根据收到的资源策略模块124传回的有关下一流水级的信息,用持久连接与下一流水级的虚拟机103进行通信,文件路径为第二流水级虚拟机103的处理结果,将文件路径作为一个请求传递到第三流水级的虚拟机103。
步骤S207,第三流水级的虚拟机103接收来自第二流水级的文件路径,读取磁盘获得文件,并且根据请求的源,将读取的文件发回给对应的第一流水级的虚拟机103。
步骤S208,第一流水级的虚拟机103接收来自第三流水级发回来的已经得到的http响应,将该http响应跟连接进行映射,发送给对应的连接的客户端。
在选择下一流水级虚拟机103时,所使用的调度策略可以基于虚拟机信息,也可以基于协同缓冲信息,或者基于虚拟机信息和协同缓冲信息。基于上述动态的选择,可以避免流水线造成的阻塞,并且可以根据虚拟机上的资源信息进行资源流动,从而更好的实现负载均衡和资源分配,提高资源利用率。
图3为连接可靠性工作流示意图。
实现连接处理的可靠性保证的基于用户层ACK实施方式如下:
使用两个ACK。ACK-I,作为下一级流水收到请求的确认;ACK-II,作为通知上级流水可以丢掉包的确认。
步骤S301,请求进入系统。
步骤S302,第一流水级虚拟机103执行结束时,由Web服务器控制模块102利用调度策略选择下一流水级虚拟机,将请求发送至进入第二流水级的处理队列,同时将其挂在第一流水级的等待ACK-I队列中。
步骤S303,当第二流水级的虚拟机103接受到该请求时,向第一流水级的虚拟机103发送ACK-I,表示已经收到;当第一流水级的虚拟机103收到第二流水级的虚拟机103发来的ACK-I时,将挂在等待ACK-I队列中的请求挂在等待ACK-II队列中。
步骤S304,第二流水级的虚拟机103执行结束时,由Web服务器控制模块102利用调度策略选择下一级虚拟机,将请求发送至进入第三流水级的处理队列,同时将其挂在第二流水级的等待ACK-I队列中。
步骤S305,当第三流水级的虚拟机103接收到该请求时,向第二流水级的虚拟机103发送ACK-I,表示已经收到;当第二流水级的虚拟机103收到第三流水级的虚拟机103发来的ACK-I时,将挂在等待ACK-I队列中的请求挂在等待ACK-II队列中。
步骤S306,第二流水级的虚拟机103向第一流水级的虚拟机103发送ACK-II,表明经第二流水级处理的请求已成功发送到第三流水级进行处理,第一流水级的虚拟机103收到第二流水级的虚拟机103发来的ACK-II后,将挂在ACK-II队列中对应的请求删除。
步骤S307,第三流水级的虚拟机103将文件发送给接收该请求的第一流水级的虚拟机103。
步骤S308,第三流水级的虚拟机103向第二流水级的虚拟机103发送ACK-II,表明经第三流水级处理的请求已成功发送到第四流水级进行处理,第二流水级的虚拟机103收到第三流水级的虚拟机103发来的ACK-II后,将挂在ACK-II队列中对应的请求删除。
基于心跳机制的应用可靠性保障的具体实施方式如下。
每个虚拟机103定期向Web服务器控制模块102发送心跳消息,Web服务器控制模块102从而可以知道哪些虚拟机103可用。当Web服务器控制模块102检测到一段时间内没有收到某个虚拟机103的心跳消息,则认为该虚拟机103出现故障,则将该虚拟机103置为不可用,同时将该消息通知虚拟机信息列表中其它的虚拟机103。其它虚拟机103收到该消息后,将本地关于故障虚拟机103的信息全部删除。
本发明流水线Web服务器的工作方法流程图如图4所示。
步骤S401,对所述Web服务器的部件进行虚拟化,创建虚拟机。
步骤S402,虚拟机处理接收到的的客户端发送的请求或上一流水级发送的请求,如果需要将处理结果作为一个请求发送给下一流水级,则向Web服务器控制模块申请下一流水级;Web服务器控制模块运用调度策略从维护的虚拟机信息列表中选择下一流水级的虚拟机,并将选择的下一流水级的虚拟机的信息回复给所述虚拟机;所述虚拟机将所述请求发送给所述回复指定的下一流水级的虚拟机。
步骤S402还包括:虚拟机在确定发送的请求被下一流水级处理完成时,丢弃所述请求。
步骤S401后还包括:
步骤411,所述虚拟机周期地向所述Web服务器控制模块发送心跳消息;
步骤412,所述Web服务器控制模块未在预设时间内接收到所述虚拟机的心跳消息后,将所述虚拟机从所述虚拟机信息列表中删除。
步骤S402进一步包括:
步骤421,在第一流水级虚拟机接收到客户端发送的请求时,解析出URL,判断所述虚拟机的全局缓冲中是否有所述请求对应的表项,如果是,执行步骤422,否则执行步骤423。
步骤422,获取文件并将所述文件发送给所述客户端。
所述步骤422进一步为判断所述文件是否在所述虚拟机内,如果是,则将所述文件发送给所述客户端;否则,建立同所述文件所在虚拟机间的连接,将所述文件取回到所述虚拟机,将所述文件发送给所述客户端。
步骤423,向所述Web服务器控制模块申请下一流水级,Web服务器控制模块运用调度策略从维护的虚拟机信息列表中选择下一流水级的虚拟机,并将选择的下一流水级的虚拟机的信息回复给所述虚拟机,所述虚拟机以URL为处理结果,将所述URL作为一个请求发送给所述回复指定的下一流水级的虚拟机。
步骤424,第二流水级的虚拟机在接收到URL,解析URL,获得对应的文件路径,向所述Web服务器控制模块申请下一流水级,Web服务器控制模块运用调度策略从维护的虚拟机信息列表中选择下一流水级的虚拟机,并将选择的下一流水级的虚拟机的信息回复给所述虚拟机,所述虚拟机以文件路径为处理结果,将所述文件路径作为一个请求发送给所述回复指定的下一流水级的虚拟机。
步骤425,第三流水级的虚拟机接收到上一流水级发送的文件路径,读取所述文件,将读取的文件发送给第一流水级的虚拟机。
步骤426,第一流水级的虚拟机接收到客户端的请求对应的http响应后,将所述响应发送给所述客户端。
所述步骤S402还包括,所述虚拟机在接收到上一流水级的请求时,回复第一确认消息;在接收到发送请求对应的第一确认消息或作为流水线最后一流水级执行完成处理后,向上一流水级发送第二确认消息;在接收到发送请求对应的第二确认消息时,丢弃所述请求。
所述调度策略基于虚拟机信息或缓冲信息;或者,调度策略基于虚拟机信息和缓冲信息。
本领域的技术人员在不脱离权利要求书确定的本发明的精神和范围的条件下,还可以对以上内容进行各种各样的修改。因此本发明的范围并不仅限于以上的说明,而是由权利要求书的范围来确定的。

Claims (20)

1.一种流水线Web服务器的系统,其特征在于,包括
分布式虚拟机监控模块,用于对所述Web服务器的部件进行虚拟化,创建多个虚拟机;
所述虚拟机,用于处理接收的客户端发送的请求或上一流水级发送的请求,在将处理结果作为一个请求发送给下一流水级时,向Web服务器控制模块申请下一流水级,接收到所述Web服务器控制模块回复后,将所述请求发送给所述回复指定的下一流水级的虚拟机;
所述Web服务器控制模块,用于维护记录可用虚拟机的虚拟机信息列表,在接收到虚拟机发送的申请下一流水级的申请时,运用调度策略从所述虚拟机信息列表中选择下一流水级的虚拟机,并将选择的下一流水级的虚拟机的信息回复给所述虚拟机。
2.如权利要求1所述的流水线Web服务器的系统,其特征在于,所述虚拟机还用于在确定发送的请求被下一流水级处理完成时,丢弃所述请求。
3.如权利要求1所述的流水线Web服务器的系统,其特征在于,
所述虚拟机还用于周期地向所述Web服务器控制模块发送心跳消息;
所述Web服务器控制模块还用于当未在预设时间内接收到所述虚拟机的心跳消息时,将所述虚拟机从所述虚拟机信息列表中删除。
4.如权利要求1所述的流水线Web服务器的系统,其特征在于,
所述虚拟机进一步用于在接收到客户端发送的请求时,解析出URL,判断所述虚拟机的全局缓冲中是否有所述请求对应的表项,如果是,则获取文件并将文件发送给所述客户端,否则,向所述Web服务器控制模块申请下一流水级,接收到所述Web服务器控制模块回复后,以所述URL为处理结果,将所述URL作为一个请求发送给所述回复指定的下一流水级的虚拟机;在接收到所述请求对应的http响应后,将所述响应发送给所述客户端。
5.如权利要求4所述的流水线Web服务器的系统,其特征在于,
所述虚拟机在获取文件并将文件发送给所述客户端时进一步用于判断所述文件是否在所述虚拟机内,如果是,则将所述文件发送给所述客户端;否则,建立同所述文件所在虚拟机间的连接,将所述文件取回到所述虚拟机,将所述文件发送给所述客户端。
6.如权利要求4所述的流水线Web服务器的系统,其特征在于,
所述虚拟机进一步用于在接收到上一流水级发送的URL时,解析URL,获得对应的文件路径,向所述Web服务器控制模块申请下一流水级,接收到所述Web服务器控制模块回复后,以所述文件路径为处理结果,将所述文件路径作为一个请求发送给所述回复指定的下一流水级的虚拟机。
7.如权利要求6所述的流水线Web服务器的系统,其特征在于,所述虚拟机进一步用于在接收到上一流水级发送的文件路径时,读取所述文件,将文件发送给接收对应客户端请求的虚拟机。
8.如权利要求2所述的流水线Web服务器的系统,其特征在于,
所述虚拟机还用于在接收到上一流水级的请求时,回复第一确认消息;在接收到向下一流水级发送请求对应的第一确认消息或作为流水线最后一流水级处理完成后,向上一流水级发送第二确认消息;
所述虚拟机在确定发送的请求被下一流水级执行完成时进一步用于在接收到发送请求对应的第二确认消息时,确定发送的请求被下一流水级处理完成。
9.如权利要求1所述的流水线Web服务器的系统,其特征在于,
所述Web服务器控制模块进一步包括:资源管理模块、系统可用性模块、资源策略模块;
所述资源管理模块,用于向所述资源策略模块提供虚拟机信息;
所述系统可用性模块,用于维护记录可用虚拟机的虚拟机信息列表;
所述资源策略模块,用于根据所述虚拟机信息确定调度策略,在接收到所述申请时,运用所述调度策略从所述虚拟机信息列表中选择下一流水级的虚拟机,并回复所述虚拟机。
10.如权利要求1所述的流水线Web服务器的系统,其特征在于,
所述Web服务器控制模块进一步包括:辅助模块、系统可用性模块、资源策略模块;
所述辅助模块,用于向所述资源策略模块提供缓冲信息;
所述系统可用性模块,用于维护记录可用虚拟机的虚拟机信息列表;
所述资源策略模块,用于根据所述缓冲信息确定调度策略,在接收到所述虚拟机发送的申请下一流水级的申请时,运用所述调度策略从所述虚拟机信息列表中选择下一流水级的虚拟机,并回复所述虚拟机。
11.一种流水线Web服务器的工作方法,其特征在于,包括:
步骤1,对所述Web服务器的部件进行虚拟化,创建多个虚拟机;
步骤2,虚拟机处理接收到的的客户端发送的请求或上一流水级发送的请求,如果需要将处理结果作为一个请求发送给下一流水级,则向Web服务器控制模块申请下一流水级;Web服务器控制模块运用调度策略从维护的虚拟机信息列表中选择下一流水级的虚拟机,并将选择的下一流水级的虚拟机的信息回复给所述虚拟机;所述虚拟机将所述请求发送给所述回复指定的下一流水级的虚拟机。
12.如权利要求11所述的流水线Web服务器的工作方法,其特征在于,所述步骤2还包括:
步骤121,所述虚拟机在确定发送的请求被下一流水级处理完成时,丢弃所述请求。
13.如权利要求11所述的流水线Web服务器的工作方法,其特征在于,所述步骤1后还包括:
步骤131,所述虚拟机周期地向所述Web服务器控制模块发送心跳消息;
步骤132,所述Web服务器控制模块未在预设时间内接收到所述虚拟机的心跳消息后,将所述虚拟机从所述虚拟机信息列表中删除。
14.如权利要求11所述的流水线Web服务器的工作方法,其特征在于,
所述步骤2进一步包括:
步骤141,在接收到客户端发送的请求时,解析出URL,判断所述虚拟机的全局缓冲中是否有所述请求对应的表项,如果是,执行步骤142,否则执行步骤143;
步骤142,获取文件并将所述文件发送给所述客户端,
步骤143,向所述Web服务器控制模块申请下一流水级,Web服务器控制模块运用调度策略从维护的虚拟机信息列表中选择下一流水级的虚拟机,并将选择的下一流水级的虚拟机的信息回复给所述虚拟机,所述虚拟机以所述URL为处理结果,将所述URL作为一个请求发送给所述回复指定的下一流水级的虚拟机。
15.如权利要求14所述的流水线Web服务器的工作方法,其特征在于,
所述步骤142进一步包括:
步骤151,判断所述文件是否在所述虚拟机内,如果是,则执行步骤152,否则,执行步骤153;
步骤152,将所述文件发送给所述客户端;
步骤153,建立同所述文件所在虚拟机间的连接,将所述文件取回到所述虚拟机,将所述文件发送给所述客户端。
16.如权利要求14所述的流水线Web服务器的工作方法,其特征在于,
所述步骤143后还包括
步骤161,第二流水级的虚拟机在接收到URL,解析URL,获得对应的文件路径,向所述Web服务器控制模块申请下一流水级,Web服务器控制模块运用调度策略从维护的虚拟机信息列表中选择下一流水级的虚拟机,并将选择的下一流水级的虚拟机的信息回复给所述虚拟机,所述虚拟机以所述文件路径为处理结果,将所述文件路径作为一个请求发送给所述回复指定的下一流水级的虚拟机。
17.如权利要求16所述的流水线Web服务器的工作方法,其特征在于,
所述步骤161后还包括:
步骤171,第三流水级的虚拟机接收到上一流水级发送的文件路径,读取所述文件,将读取的文件发送给接收对应客户端请求的虚拟机。
18.如权利要求17所述的流水线Web服务器的工作方法,其特征在于,
所述步骤171后还包括接收客户端请求的虚拟机接收到客户端的请求对应的http响应后,将所述响应发送给所述客户端。
19.如权利要求12所述的流水线Web服务器的工作方法,其特征在于,
所述步骤2还包括,所述虚拟机在接收到上一流水级的请求时,回复第一确认消息;在接收到发送请求对应的第一确认消息或作为流水线最后一流水级执行完成处理后,向上一流水级发送第二确认消息;
所述步骤121进一步为在接收到发送请求对应的第二确认消息时,丢弃所述请求。
20.如权利要求11所述的流水线Web服务器的工作方法,其特征在于,
所述调度策略基于虚拟机信息或缓冲信息。
CN 200810247388 2008-12-29 2008-12-29 一种流水线Web服务器的系统及其工作方法 Active CN101448027B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 200810247388 CN101448027B (zh) 2008-12-29 2008-12-29 一种流水线Web服务器的系统及其工作方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 200810247388 CN101448027B (zh) 2008-12-29 2008-12-29 一种流水线Web服务器的系统及其工作方法

Publications (2)

Publication Number Publication Date
CN101448027A true CN101448027A (zh) 2009-06-03
CN101448027B CN101448027B (zh) 2013-01-30

Family

ID=40743416

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200810247388 Active CN101448027B (zh) 2008-12-29 2008-12-29 一种流水线Web服务器的系统及其工作方法

Country Status (1)

Country Link
CN (1) CN101448027B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102195850A (zh) * 2010-03-10 2011-09-21 中国移动通信集团公司 一种流媒体业务的处理方法和系统
CN102223418A (zh) * 2011-06-27 2011-10-19 中国科学院计算技术研究所 基于动态流水线网络服务器的分布式Cache系统及其工作方法
WO2012048619A1 (en) * 2010-10-12 2012-04-19 Transoft (Shanghai), Inc. Client-side virtualization architecture
CN102523109A (zh) * 2011-12-08 2012-06-27 杭州华三通信技术有限公司 资源状态更新方法、管理客户端及服务器
CN102594891A (zh) * 2012-02-17 2012-07-18 中国科学院计算技术研究所 用于处理远程过程调用请求的方法及系统
CN104063228A (zh) * 2014-07-02 2014-09-24 中央民族大学 一种流水线数据处理系统
CN104320492A (zh) * 2014-11-11 2015-01-28 北京国双科技有限公司 网站服务器调度方法和装置
CN107018180A (zh) * 2017-03-22 2017-08-04 南京理工大学 基于jseda的智能交通大数据平台分发共享系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100451976C (zh) * 2007-07-23 2009-01-14 清华大学 基于海量数据分级存储系统的迁移管理方法

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102195850A (zh) * 2010-03-10 2011-09-21 中国移动通信集团公司 一种流媒体业务的处理方法和系统
CN102195850B (zh) * 2010-03-10 2014-06-11 中国移动通信集团公司 一种流媒体业务的处理方法和系统
WO2012048619A1 (en) * 2010-10-12 2012-04-19 Transoft (Shanghai), Inc. Client-side virtualization architecture
US8943506B2 (en) 2010-10-12 2015-01-27 Transoft (Shanghai), Inc. Client-side virtualization architecture using differential bi-directional synchronization and closed computing
CN102223418A (zh) * 2011-06-27 2011-10-19 中国科学院计算技术研究所 基于动态流水线网络服务器的分布式Cache系统及其工作方法
CN102523109A (zh) * 2011-12-08 2012-06-27 杭州华三通信技术有限公司 资源状态更新方法、管理客户端及服务器
CN102594891A (zh) * 2012-02-17 2012-07-18 中国科学院计算技术研究所 用于处理远程过程调用请求的方法及系统
CN104063228A (zh) * 2014-07-02 2014-09-24 中央民族大学 一种流水线数据处理系统
CN104320492A (zh) * 2014-11-11 2015-01-28 北京国双科技有限公司 网站服务器调度方法和装置
CN107018180A (zh) * 2017-03-22 2017-08-04 南京理工大学 基于jseda的智能交通大数据平台分发共享系统
CN107018180B (zh) * 2017-03-22 2019-11-15 南京理工大学 基于jseda的智能交通大数据平台分发共享系统

Also Published As

Publication number Publication date
CN101448027B (zh) 2013-01-30

Similar Documents

Publication Publication Date Title
CN101448027B (zh) 一种流水线Web服务器的系统及其工作方法
CN100573456C (zh) 一种并行多处理器虚拟机系统
US8327086B2 (en) Managing migration of a shared memory logical partition from a source system to a target system
US8271989B2 (en) Method and apparatus for virtual processor dispatching to a partition based on shared memory pages
CN101512488B (zh) 在虚拟机环境中提供硬件虚拟化的系统和方法
CN102365626B (zh) 用于虚拟机的虚拟非一致存储器体系结构
US7774563B2 (en) Reducing memory access latency for hypervisor- or supervisor-initiated memory access requests
CN105700907A (zh) 利用针对本地检查点的卸载程序模型
CN103780655A (zh) 一种消息传递接口任务和资源调度系统及方法
CN103927277A (zh) Cpu和gpu共享片上高速缓存的方法及装置
CN102495769A (zh) 动态虚拟设备故障恢复
KR101511972B1 (ko) 계층적 캐싱 설계에서 캐시들 간 효율적 통신을 위한 방법 및 장치
US9229715B2 (en) Method and apparatus for efficient inter-thread synchronization for helper threads
CN105988874A (zh) 资源处理方法及装置
CN103744716A (zh) 一种基于当前vcpu调度状态的动态中断均衡映射方法
US10579419B2 (en) Data analysis in storage system
CN100538649C (zh) 用于分发分派窗内的未使用的处理器循环的方法和系统
CN109426544A (zh) 虚拟机部署方法和装置
US8139595B2 (en) Packet transfer in a virtual partitioned environment
US7958510B2 (en) Device, system and method of managing a resource request
Ren et al. Phantasy: Low-latency virtualization-based fault tolerance via asynchronous prefetching
US10067720B2 (en) Synchronous input/output virtualization
Li et al. Tmemcanal: A vm-oblivious dynamic memory optimization scheme for virtual machines in cloud computing
CN110389791A (zh) 组件调度方法、装置、设备及存储介质
Arora et al. Work-in-Progress: A Holistic Approach to WCRT Analysis for Multicore Systems

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
TR01 Transfer of patent right

Effective date of registration: 20240320

Address after: Room 711C, Floor 7, Building A, Yard 19, Ronghua Middle Road, Daxing District, Beijing Economic-Technological Development Area, 100176

Patentee after: Beijing Zhongke Flux Technology Co.,Ltd.

Country or region after: China

Address before: 100190 No. 6 South Road, Zhongguancun Academy of Sciences, Beijing, Haidian District

Patentee before: Institute of Computing Technology, Chinese Academy of Sciences

Country or region before: China

TR01 Transfer of patent right