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
- 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.
- single process of execution.
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.
- The helper processes are responsible for performing
文章下载
Flash: An Efficient and Portable Web Server的更多相关文章
- Portable Basemap Server:多数据源多客户端的底图服务器
Portable Basemap Server:多数据源多客户端的底图服务器 [poll id=”1″]2014.3.8更新v3.1~在线切片转换为MBTiles时,增加RecreateEmptyCa ...
- Jexus Web Server 完全傻瓜化图文配置教程(基于Ubuntu 12.04.3 64位)[内含Hyper-v 2012虚拟机镜像下载地址]
1. 前言 近日有感许多新朋友想尝试使用Jexus,不过绝大多数都困惑徘徊在Linux如何安装啊,如何编译Mono啊,如何配置Jexus啊...等等基础问题,于是昨日向宇内流云兄提议,不如搞几个配置好 ...
- C#中自己动手创建一个Web Server(非Socket实现)
目录 介绍 Web Server在Web架构系统中的作用 Web Server与Web网站程序的交互 HTTPListener与Socket两种方式的差异 附带Demo源码概述 Demo效果截图 总结 ...
- 本机ip+端口不能访问web server,外部却可以访问
本机ip+端口不能访问web server,外部却可以访问! 这个奇葩的问题困扰了我好久,别人通过ip访问我的server一切正常,自己却访问不了,一度怀疑win10的问题,久寻无果! 最后关闭ads ...
- 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 ...
- vs默认VS Development Sever和用IIS Web Server的一点差别
关于VS Development Server(vs调试默认运行环境)和IIS Web Server 做运行服务器时,请求处理的一点区别. 将请求粗略分为两类:静态资源请求和动态资源请求. 静态资源请 ...
- [SDK2.2]Windows Azure Virtual Network (4) 创建Web Server 001并添加至Virtual Network
<Windows Azure Platform 系列文章目录> 在上一章内容中,笔者已经介绍了以下两个内容: 1.创建Virtual Network,并且设置了IP range 2.创建A ...
- 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版本. 运行时,它第一次 ...
- 【转】推荐介绍几款小巧的Web Server程序
原博地址:http://blog.csdn.net/heiyeshuwu/article/details/1753900 偶然看到几个小巧有趣的Web Server程序,觉得有必要拿来分享一下,让大家 ...
随机推荐
- ADB
adb logcat 命令详解 log过滤 http://blog.csdn.net/liao277218962/article/details/50129009 如何使用 adb logcat 查看 ...
- 常用function() 收集
1.随机数生成函数(来源-微信支付demo案例) /** * * 产生随机字符串,不长于32位 * @param int $length * @return 产生的随机字符串 */ public st ...
- ajax传输中文乱码解决方法
问题描述: 我是在一个jsp页面有一个保存按钮,点击时会触发saveForm()的js函数,在saveForm()函数里经过校验后,会通过ajax发送数据请求,这样就不用通过提交表单来传输数据了,aj ...
- 关于MySQL的wait_timeout连接超时问题报错解决方案
bug回顾 : 想必大家在用MySQL时都会遇到连接超时的问题,如下图所示: ### Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsExce ...
- MyEclipse安装插件的几种方法
本文讲解MyEclipse(MyEclipse10)的三种方法,以SVN为例 Eclipse update site URL: http://subclipse.tigris.org/update_1 ...
- MongoDB安装配置示例
参考 http://www.runoob.com/mongodb/mongodb-window-install.html http://www.cnblogs.com/lecaf/archive/20 ...
- .Net Framework认知
在托管代码的世界里,应用程序首先被加载到应用程序域(AppDomain)中,然后将应用程序域加载到进程中,一个进程可以包含多个应用程序域,也就是说一个进程可以包含多个应用程序,毕竟应用程序域之间的切换 ...
- BMP图像差分/比较
#include <stdio.h> #include <stdlib.h> #include <string.h> int main(int argc, char ...
- Java图片处理 Thumbnails框架
一.设置图片的缩放比例或者图片的质量比 第一步:导入maven的jar包 <dependency> <groupId>net.coobird</groupId ...
- 我的Hcharts的页面应用
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="utf-8& ...