Flash An efficient and portable Web server Authors
Flash: An efficient and portable Web server Authors: Vivek S. Pai, Peter Druschel, Willy Zwaenepoel Presented at the Usenix Technical Conference, June 1999 Presented by Richard Ta-Min
Introduction • Web servers need to be fast and able to service many requests concurrently • Three web server architectures – Multi-process and multi-thread • Apache web server – Single process event driven • Zeus web server – Asymmetric multi process event driven • Flash web server
Processing of HTTP request
Processing of HTTP request Data not ready to be read from socket stat() and open() sys call may block on disk I/O read() and write() sys call may block too
Multiple Process - MP • Each process handles one request • Disadvantages – Each process has its separate address space – Cannot share data: separate cache – Context switch overhead
Multiple Threads - MT • Each thread handles one request • Advantages – One address space: All threads share one cache – Less context switch overhead • OS has to support kernel threads • Apache V 2. 0 can use threads
Single Process Event Driven - SPED • Single thread of execution • Use non-blocking system calls to perform I/O operations • Used by Zeus web server
Single Process Event Driven - SPED • SPED should be able to process many requests at a time but … • Non-blocking read/write don’t work on disk operations Disk I/O operations still block
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
Asymmetric Multi Process Event Driven • 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 • Flash web server – implementation of the AMPED architecture • Uses aggressive caching – Pathname translation caching – Response header caching – Caching of already mapped files
Performance Evaluation • Compare different web server architecture – – – Flash AMPED Flash SPED Flash MT Flash MP Apache V 1. 3. 1 Zeus V 1. 30
Test Platform • Server – Speed: 333 MHz Pentium II – Memory: 128 MB • Operating System – Solaris 2. 6 – Free BSD 2. 2. 6 – No support for threads • Clients – Software that simulates HTTP clients
Synthetic Workload • Clients request the same file repeatedly • Purpose to see how web server behaves under best conditions Solaris Free. BSD
Trace Based Experiments • Replay access logs from real web servers
Trace Based Experiments • Test server with workload of different data set size
Trace Based Experiments • Varying the number of clients
Conclusion • Efficient web server: Need to handle request and perform disk operations • Web server architecture – MP/MT – SPED – AMPED – Combines efficiency of SPED and MP • Flash web server based on AMPED outperforms Zeus and Apache
- Slides: 18