Introduction

  • This paper presents the design of a new Web server architecture called the asymmetric multi-process event-driven (AMPED) architecture, and evaluates the performance of an implementation of this architecture, the Flash Web server.
  • 在这之前,主要存在3种不同的web server architecture
    • The single-process event-driven (SPED) architecture
    • The multi-process (MP) architecture
    • The multi-threaded (MT) architecture

Simplified Request Processing Steps

  • All of these steps involve operations that can potentially block.
    • read data or accept connections from a socket may block if the expected data has not yet arrived from the client.
    • write to a socket may block if the TCP send buffers are full due to limited network capacity.
    • test a file’s validity (using stat()) or open the file (using open()) can block until any necessary disk accesses complete.
    • reading a file (using read()) or accessing

      data from a memory-mapped file region can block while data is read from disk.

3种不同的web server architecture存在的问题

  • The single-process event-driven (SPED) architecture

    • single process of execution.

      • using non-blocking system calls to perform I/O operations(An operation like select or poll).
      • non-blocking read and write operations work as expected on network sockets and pipes, but may actually block when used on disk files.
      • read,write,open and stat operations may still be blocking.
  • The multi-process (MP) architecture

    • each process handles one request.
    • disadvantages
      • each process has its separate address space.
      • cannot share data: separate cache.
      • context switch overhead(上下文切换所带来的开销).
  • The multi-threaded (MT) architecture

    • each thread handles one request.
    • advantages
      • one address space: all threads share one cache.
      • less context switch overhead.
    • OS has to support kernel threads

Asymmetric Multi Process Event Driven

  • Combination of MP and SPED.
  • Use non-blocking calls to perform network and pipe operations.
  • Use helper process to perform blocking disk I/O operations,Helper process can be a separate thread or process.
  • Master and Helper process communicate through IPC
    • Master and Helper mmap() the same request file.
    • Helper process reads file from disk and brings into memory.
    • Helper notifies master that file is ready.
    • Avoid data transfer between processes.

Flash web server

  • Implementation of the AMPED architecture.
  • Uses aggressive caching
    • The helper processes are responsible for performing

      pathname translations and for bringing disk blocks into memory.
    • Response header caching
    • Caching of already mapped files.

文章下载

Flash: An Efficient and Portable Web Server的更多相关文章

  1. Portable Basemap Server:多数据源多客户端的底图服务器

    Portable Basemap Server:多数据源多客户端的底图服务器 [poll id=”1″]2014.3.8更新v3.1~在线切片转换为MBTiles时,增加RecreateEmptyCa ...

  2. Jexus Web Server 完全傻瓜化图文配置教程(基于Ubuntu 12.04.3 64位)[内含Hyper-v 2012虚拟机镜像下载地址]

    1. 前言 近日有感许多新朋友想尝试使用Jexus,不过绝大多数都困惑徘徊在Linux如何安装啊,如何编译Mono啊,如何配置Jexus啊...等等基础问题,于是昨日向宇内流云兄提议,不如搞几个配置好 ...

  3. C#中自己动手创建一个Web Server(非Socket实现)

    目录 介绍 Web Server在Web架构系统中的作用 Web Server与Web网站程序的交互 HTTPListener与Socket两种方式的差异 附带Demo源码概述 Demo效果截图 总结 ...

  4. 本机ip+端口不能访问web server,外部却可以访问

    本机ip+端口不能访问web server,外部却可以访问! 这个奇葩的问题困扰了我好久,别人通过ip访问我的server一切正常,自己却访问不了,一度怀疑win10的问题,久寻无果! 最后关闭ads ...

  5. Difference between web server ,web container and application server

    In Java: Web Container or Servlet Container or Servlet Engine : is used to manage the components lik ...

  6. vs默认VS Development Sever和用IIS Web Server的一点差别

    关于VS Development Server(vs调试默认运行环境)和IIS Web Server 做运行服务器时,请求处理的一点区别. 将请求粗略分为两类:静态资源请求和动态资源请求. 静态资源请 ...

  7. [SDK2.2]Windows Azure Virtual Network (4) 创建Web Server 001并添加至Virtual Network

    <Windows Azure Platform 系列文章目录> 在上一章内容中,笔者已经介绍了以下两个内容: 1.创建Virtual Network,并且设置了IP range 2.创建A ...

  8. The Web server is configured to not list the contents of this directory.

    部署一个ASP.NET MVC网站至一个全新的服务器Windows Server 2008 R2, 数据为MS SQL Server 2014 64bit Expression版本. 运行时,它第一次 ...

  9. 【转】推荐介绍几款小巧的Web Server程序

    原博地址:http://blog.csdn.net/heiyeshuwu/article/details/1753900 偶然看到几个小巧有趣的Web Server程序,觉得有必要拿来分享一下,让大家 ...

随机推荐

  1. css水平垂直居中对齐方式

    1.文字或者内联元素的垂直水平居中对齐 css属性 -- 水平居中:text-aligin:center; 垂直居中: line-height:height; 例子:. html: <div c ...

  2. 语言模型kenlm的训练及使用

    一.背景 近期研究了一下语言模型,同事推荐了一个比较好用的工具包kenlm,记录下使用过程. 二.使用kenlm训练 n-gram 1.工具介绍:http://kheafield.com/code/k ...

  3. Python中的if __name__='__main__'语句的作用

    笔者在自学Python的过程中,对于if __name__='__main__'的用法感到很困惑,在think Python一书中原作者的源代码是这么解释if __name__='__main__'语 ...

  4. Create a new Windows service on windows server2012

    netsh http add iplisten ipaddress=0.0.0.0:15901 sc.exe create "FPPService" binPath= " ...

  5. .Net GridView 序号列

    给GridView增加一列:序号列 <asp:TemplateField HeaderText="序号"> <ItemTemplate> <%# (( ...

  6. eclipse建立springMVC 简单项目

    http://jinnianshilongnian.iteye.com/blog/1594806 如何通过eclipse建立springMVC的简单项目,现在简单介绍一下. 工具/原料   eclip ...

  7. Thinkphp 3.2.2 验证码check_verify方法,只能验证一次

    问题: Thinkphp 3.2.2 验证码check_verify方法,只能验证一次. function check_verify($code, $id = ''){ $verify = \Thin ...

  8. 创伤后应激障碍(PTSD)

    创伤后应激障碍(Post Traumatic Stress Disorder,PTSD)又称延迟性心因性反应(Delayed Psychogenic Reaction),是由应激性事件或处境而引起的延 ...

  9. c#过滤html标签

    public string HtmlFilter(string html)     {         //设置要删除的标记         string[] lable = { "font ...

  10. Qt - 错误总结 - 在自定义类头文件中添加Q_OBJECT 编译时报错(undefined reference to ‘vtable for xxThread)

    错误提示:在添加的QThread子类头文件添加Q_OBJECT时,编译程序,出现"undefined reference to 'vtable for xxThread'"错误提示 ...