• Flash: An Efficient and Portable Web Server


    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

    • figure 1
    • 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.

    文章下载

  • 相关阅读:
    交叉工具链的搭建方法(测试成功)
    使用samba实现linux与windows共享(测试成功)
    sd卡脱机烧写系统的方法(测试成功)
    Navicat连接SQLServer未发现数据源名并且未指定默认驱动程序
    使用docker rmi 批量删除docker镜像
    删除镜像docker rmi IMAGE ID提示image is referenced in multiple repositories
    Linux下,改过/etc/profile文件导致ls vi等命令不能使用解决方法
    安装openssl-dev 报错E: Unable to locate package openssl-dev
    zabbix监控redis命中率---张庆沉笔记
    布局之BFC
  • 原文地址:https://www.cnblogs.com/wally/p/4477033.html
Copyright © 2020-2023  润新知