zoukankan      html  css  js  c++  java
  • 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.

    文章下载

  • 相关阅读:
    KVC
    MRC&ARC
    网络基础
    沙盒
    GCD深入了解
    iOS 架构模式MVVM
    iOS 源代码管理工具之SVN
    iOS给UIimage添加圆角的两种方式
    Objective-C 中,atomic原子性一定是安全的吗?
    iOS Block循环引用
  • 原文地址:https://www.cnblogs.com/wally/p/4477033.html
Copyright © 2011-2022 走看看