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程序,觉得有必要拿来分享一下,让大家 ...
随机推荐
- Oracle交易流水号问题
需求:生成交易流水号,每次新增一条记录时都自动加1,且流水号形式为000000001形式的10位数字. 思路:利用序列可以生成自增的流水号,只需要在前面添加N个0即可,同时,由于数字的长度一定,因此可 ...
- CAS环境搭建
实验背景: 系统环境: Windows XP | SUN JDK1.6U4 | Tomcat6.0.14 | CAS Server 3.1.1 + CAS Client 2.1.1 主机完整名称: ...
- runtime
7.runtime实现的机制是什么,怎么用,一般用于干嘛. 你还能记得你所使用的相关的头文件或者某些方法的名称吗? 运行时机制,runtime库里面包含了跟类.成员变量.方法相关的API,比如获取类里 ...
- 欢迎来到Joyful Physics博客
本博客主要包括以下内容: 物理课程 预计会涵盖非物理专业普通物理.物理专业普通物理.理论物理(四大力学).凝聚态物理,会特别关注软物质物理,因为博主是做软物质物理的. 软硬科普 软科普写给非专业人士. ...
- .net一般处理程序(httphandler)实现文件下载功能
Handler文件代码如下: public class MDMExporterWeb : IHttpHandler { public void ProcessRequest(HttpContext c ...
- Eclipse使用Maven tomcat:run命令启动web项目时修改默认端口
- shell语法
基本语法列表 #linux组成:内核+工具 #linux启动: . getty:提示登录名和密码,输入之后调用login . login:login验证用户名和密码,然后调用shell . shell ...
- Merge K Sorted Arrays
This problem can be solved by using a heap. The time is O(nlog(n)). Given m arrays, the minimum elem ...
- Mosquitto pub/sub服务实现代码浅析-主体框架
Mosquitto 是一个IBM 开源pub/sub订阅发布协议 MQTT 的一个单机版实现(目前也只有单机版),MQTT主打轻便,比较适用于移动设备等上面,花费流量少,解析代价低.相对于XMPP等来 ...
- NSIS对话框单位造成的控件移位问题
在使用NSIS脚本开发安装卸载程序,使用自定义的nsdialog控件.发现在小部分系统上安装时,一些控件会消失,或者挪位.于是排除问题,看看这些控件的为位置和坐标,发现基本上是使用了对话框单位的控件, ...