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. 5天揭秘js高级技术-第一天

    一.基础杂记 1. document.write() <script type="text/javascript"> document.write('<h2> ...

  2. Android中Context的理解及使用(一)——Context的作用

    Context的作用:用来访问全局信息的接口,通过Context进行资源的访问. 1.Context获取字符串资源: public class MainActivity extends AppComp ...

  3. vtkQuadratic创建半球面

    用的关键类:vtkQuadric.vtkSampleFunction.vtkContourFilter:用于创建方框的类vtkOutlineFilter #ifndef INITIAL_OPENGL ...

  4. ELK 集中日志分析 windows部署实战

    一步步来 1.下载软件 Elasticsearch: https://download.elasticsearch.org/...p/elasticsearch/2.0.0/elasticsearch ...

  5. ACM交流赛感悟

    A题很水,字符串匹配,提交好几次都没通过,后来老何提醒后,发现题意理解错了,改过来之后,还是没过----------------在敲代码之前,一定要三个人统一一下思路,思路一样的话,开敲: F题是简单 ...

  6. ls目录内容

    ls:列出目录内容 1.常用参数: -a, –all 列出目录下的所有文件,包括以 . 开头的隐含文件(常用) -A 同-a,但不列出“.”(表示当前目录)和“..”(表示当前目录的父目录). -c  ...

  7. Id.value与document.getElementById("Id").value的区别

    如果标签Id在Form表单里面的话,直接Id.value就不能用了,而是要用Form.Id.value来取值或设置值 所以最好用document.getElementById("Id&quo ...

  8. Boost正则表达式的编译与使用方法集

    下载boost 在boost官网上下载任何版本都可以www.boost.org . 将boost压缩包解压到D盘目录下 (我下载的是boost_1_54_0.zip),目录为D:\boost_1_54 ...

  9. zepto之tap事件点透问题分析及解决方案

    点透现象出现的场景: 当A/B两个层上下z轴重叠,上层的A点击后消失或移开(这一点很重要),并且B元素本身有默认click事件(如a标签)或绑定了click事件.在这种情况下,点击A/B重叠的部分,就 ...

  10. ng-repeat里创建的自定义指令

    在ng里,所有的指令在按照意愿正常工作之前的都需要编译一下,包含angularJS的自定义指令. ng模板里的所有指令都会在angularJS加载完毕之后编译一下,所以那些自定义指令和事件才能工作. ...