`
san_yun
  • 浏览: 2663766 次
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

Multitasking server architectures

 
阅读更多

昨天晚上测试了一吧,uwsgi的并发数真的等于进程数的大小,一个耗时长的URL就能能把系统堵死。一些总结,系统的吞吐量=web服务器能处理的并发数*系统的QPS,tomcat通过增加线程数来提高服务器的并发处理能力,优化系统提高响应速度也能提高系统的吞吐量。uwsgi,tomcat,apache,nginx多任务处理器有什么区别,为什么apache,nginx具有多连接处理能力?

 

网上找到这篇文章: http://www.fmc-modeling.org/category/projects/apache/amp/4_3Multitasking_server.html

 

inetd传统的架构模式

 

一个master server来监听端口,然后每个请求fork一个进程来处理:

inetd_BD.gif

inetd_PN.gif

 

 

 

 

 

 

HTTP是无状态的协议,它只需要响应一个请求,可以“忘记”地关注此事之后,一个HTTP服务器基于inetd架构是效率很低。

 

4.3.2Apache Multitasking Architectures

 

所有Apache多任务处理的架构是基于一个任务池体系结构。在启动,Apache创建大量的任务(流程和/或线程),他们中的大多数都是空闲的。一个请求将被处理,通过一个闲置的任务,所以不需要创建一个任务,用于请求处理像4.3.1节中描述inetd。

 

在以下代码中,preforking架构将被视作第一也是最重要的架构为unix系统。然后我们奉献给你们一组精选的其他Apache多任务处理架构和强调差异有关preforking架构。

 

4.3.3 The Preforking Multiprocessing Architecture

 

4.3.3.1. The leader-followers pattern

preforking的架构基于一个池的任务(进程或线程),在三种不同的角色:

  • 等待请求(listener)
  • 处理一个请求(worker)
  • 队列和等待成为侦听器(idle worker)

leader-followers_BD.gif

上图显示了这个系统的结构:侦听器是领袖。只有一个任务可以获准等待连接请求。

 

如果侦听器请求时,它会处理她,此时他的角色变成worker,如果他处理请求的完成,他将关闭连接,并成为一种闲置工人。这意味着他的排队等待成为侦听器。通常一个闲置的工人的任务将会暂停。

那么这和前面的处理方式有何不同?

首先,一个传入请求将会被立即被listener处理——没有新任务创建。另一方面都应该有一定数量的闲置工人任务以确保总有一个侦听器。其次,不需传递信息的请求重定向到另一个任务,因为listener只是开关。

 

 

 

 

分享到:
评论

相关推荐

    Python库 | multitasking-0.0.10.tar.gz

    标题中的"Python库 | multitasking-0.0.10.tar.gz"指的是一个名为`multitasking`的Python库的版本0.0.10,它被打包成`.tar.gz`格式的压缩文件。这种格式通常用于在Unix-like系统或Python环境中分发源代码包。`.tar....

    ios应用源码之后台运行(multitasking)以及本地通知(local noti

    本资源“ios应用源码之后台运行(multitasking)以及本地通知(local notifications)”提供了一个完整的背景运行和本地通知实现的示例,包含了图片、书籍资料以及相关的代码,打包名为“backgrounddemo(beta4fixed)”。...

    Intel 64 and IA-32 Architectures Software Developer's Manual Volume 1---Volume 3

    software, system software, and multitasking operating systems. Debug support is accessed using debug registers (DB0 through DB7) and model-specific registers (MSRs): • Debug registers hold the ...

    multitasking:使用装饰器的非阻塞Python方法

    MultiTasking:使用装饰器的非阻塞Python方法 MultiTasking是一个很小的Python库,可让您简单地通过使用装饰器将Python方法转换为异步,非阻塞方法。 例子 # example.py import multitasking import time import ...

    multitasking_1.70

    更新时间:2011-08-11资费提示:免费版当前版本:1.70软件语言:中文软件类别:进程管理软件大小:157 KB适用固件:2.1及更高固件内置广告:没有广告适用平台:Android 软件介绍 MultiTaskin Pro可以让您在正在运行...

    MIT JOS Lab 4: Preemptive Multitasking

    《MIT JOS Lab 4:抢占式多任务处理详解》 在计算机科学领域,操作系统是管理计算机硬件资源并提供服务的软件核心。MIT JOS(Journey Operating System)实验是麻省理工学院操作系统课程的一部分,旨在让学生深入...

    ABB多任务Multitasking选项应用.7z

    ABB机器人多任务(Multitasking)选项是一种高级功能,它允许ABB机器人系统同时执行多个任务,从而提高了生产效率和灵活性。对于ABB机器人初学者来说,理解并掌握这一特性至关重要,因为这将帮助他们更好地设计和...

    Embedded Multitasking

    《Embedded Multitasking》这本书由Keith Curtis撰写,主要介绍了如何利用状态机来实现嵌入式系统中的多任务处理。 #### 二、状态机与多任务的关系 状态机是一种广泛使用的编程模型,它通过定义一系列的状态以及在...

    bare-metal-multitasking.rar

    标题中的“bare-metal multitasking”指的是在微控制器(如STM32)上进行的无操作系统(OS)的多任务处理。在这种模式下,程序直接在硬件上运行,没有中间的操作系统层来管理资源和调度任务,因此称为“bare-metal”...

    IOS应用源码——后台运行(Multitasking)以及本地通知(Local Notifications) zip

    在iOS开发中,后台运行(Multitasking)和本地通知(Local Notifications)是两个至关重要的概念,它们极大地提升了用户体验和应用的功能性。本资源“IOS应用源码——后台运行(Multitasking)以及本地通知(Local ...

    Cooperative multitasking using coroutines (in PHP!).pdf

    作者建议如果读者已经对生成器和协程有了一定的了解,可以直接跳转到“Cooperative multitasking”(协作多任务)的部分,进一步了解如何实现多任务调度。 总的来说,该文档将详细探讨PHP中协程的使用,并通过任务...

    Cooperative Kernels - GPU Multitasking for Blocking Algorithms (fse2017)-计算机科学

    Cooperative Kernels: GPU Multitasking for Blocking Algorithms Tyler SorensenImperial College London London, UKt.sorensen15@imperial.ac.ukHugues Evrard Imperial College LondonLondon, UK h.evrard@...

    Real-Time Multitasking Executives.pdf

    RTX-51和RTX-251是针对8051和MCS-251微控制器系列设计的实时多任务操作系统,由Keil软件公司开发。它们是为嵌入式系统的实时性能优化而设计的实时执行程序(或称作实时多任务执行器),可以与C51或C251编程语言结合...

    multitasking-js:使用生成器在JavaScript中进行抢占式多任务

    然而,随着ES6(ECMAScript 2015)引入的生成器(Generators),开发者可以实现一种称为“抢占式多任务”(cooperative multitasking)的模式,这使得在JavaScript中处理并发和异步操作变得更加灵活。 生成器是具有...

    IOS应用源码之后台运行(Multitasking)以及本地通知(Local Notifications)Demo .zip

    在iOS开发中,后台运行(Multitasking)和本地通知(Local Notifications)是两个非常重要的概念,它们极大地提升了用户体验和应用的功能性。本Demo旨在帮助开发者深入理解和实践这两个特性。 一、后台运行...

    Learning Network Programming with Java 2016无水印pdf 0分

    Gain expertise of the networking features of your own applications to support various network architectures such as client/server and peer-to-peer Explore the issues that impact scalability, affect ...

    symbian MultiTasking(flashtao哥的多任务下载).rar

    《Symbian操作系统中的多任务处理技术》 在智能手机领域,Symbian操作系统以其高度定制化和强大的功能深受用户喜爱。其中,多任务处理能力是Symbian系统的一大亮点,它使得用户可以在同一时间执行多个应用程序,...

Global site tag (gtag.js) - Google Analytics