Flash: An efficient and portable Web server Authors: Vivek S. Pai, Peter Druschel, Willy Zwaenepoel Presented at the Usenix Technical Conference, June.

Slides:



Advertisements
Similar presentations
CS 443 Advanced OS Fabián E. Bustamante, Spring 2005 Resource Containers: A new Facility for Resource Management in Server Systems G. Banga, P. Druschel,
Advertisements

Event-Driven Programming Vivek Pai Dec 4, GedankenEvents  Enron – bad news all around  What are these numbers: $1B, $100B, $80B, $200M  Korean.
IO-Lite: A Unified Buffering and Caching System By Pai, Druschel, and Zwaenepoel (1999) Presented by Justin Kliger for CS780: Advanced Techniques in Caching.
IO-Lite: A Unified I/O Buffering and Caching System Vivek S. Pai, Peter Drusche Willy and Zwaenepoel 산업공학과 조희권.
CS533 Concepts of Operating Systems Jonathan Walpole.
Day 10 Threads. Threads and Processes  Process is seen as two entities Unit of resource allocation (process or task) Unit of dispatch or scheduling (thread.
Chapter 4: Threads. Overview Multithreading Models Threading Issues Pthreads Windows XP Threads.
Fast Servers Robert Grimm New York University Or: Religious Wars, part I, Events vs. Threads.
Jump to first page Flash An efficient and portable Web server presented by Andreas Anagnostatos CSE 291 Feb. 2, 2000 Vivek S. Pai Peter Druschel Willy.
Capriccio: Scalable Threads for Internet Services ( by Behren, Condit, Zhou, Necula, Brewer ) Presented by Alex Sherman and Sarita Bafna.
CS 623 Lecture #9 Yen-Yu Chen Utku Irmak. Papers to be read Better operating system features for faster network servers.Better operating system features.
Fast Servers Robert Grimm New York University Or: Religious Wars, part I, Events vs. Threads.
Precept 3 COS 461. Concurrency is Useful Multi Processor/Core Multiple Inputs Don’t wait on slow devices.
Accurate and Efficient Replaying of File System Traces Nikolai Joukov, TimothyWong, and Erez Zadok Stony Brook University (FAST 2005) USENIX Conference.
I/O Hardware n Incredible variety of I/O devices n Common concepts: – Port – connection point to the computer – Bus (daisy chain or shared direct access)
3.5 Interprocess Communication Many operating systems provide mechanisms for interprocess communication (IPC) –Processes must communicate with one another.
3.5 Interprocess Communication
Threads CSCI 444/544 Operating Systems Fall 2008.
CMPT 401 Summer 2007 Dr. Alexandra Fedorova Lecture IV: OS Support.
1 Chapter 4 Threads Threads: Resource ownership and execution.
Threads. Processes and Threads  Two characteristics of “processes” as considered so far: Unit of resource allocation Unit of dispatch  Characteristics.
A. Frank - P. Weisberg Operating Systems Introduction to Tasks/Threads.
User-Level Interprocess Communication for Shared Memory Multiprocessors Brian N. Bershad, Thomas E. Anderson, Edward D. Lazowska, and Henry M. Levy Presented.
1 I/O Management in Representative Operating Systems.
Basic Networking & Interprocess Communication Vivek Pai Nov 27, 2001.
PRASHANTHI NARAYAN NETTEM.
The Design of Robust and Efficient Microkernel ManRiX, The Design of Robust and Efficient Microkernel Presented by: Manish Regmi
Understanding Factors That Influence Performance of a Web Server Presentation CS535 Project By Thiru.
SEDA: An Architecture for Well-Conditioned, Scalable Internet Services by, Matt Welsh, David Culler, and Eric Brewer Computer Science Division University.
9/13/20151 Threads ICS 240: Operating Systems –William Albritton Information and Computer Sciences Department at Leeward Community College –Original slides.
Flash An efficient and portable Web server. Today’s paper, FLASH Quite old (1999) Reading old papers gives us lessons We can see which solution among.
Multithreading Allows application to split itself into multiple “threads” of execution (“threads of execution”). OS support for creating threads, terminating.
Today’s topic Other server design alternatives –Preforked servers –Threaded servers –Prethreaded servers.
Operating System 4 THREADS, SMP AND MICROKERNELS
ICOM 6115©Manuel Rodriguez-Martinez ICOM 6115 – Computer Networks and the WWW Manuel Rodriguez-Martinez, Ph.D. Lecture 6.
Chapter 2 (PART 1) Light-Weight Process (Threads) Department of Computer Science Southern Illinois University Edwardsville Summer, 2004 Dr. Hiroshi Fujinoki.
Rapid Development of High Performance Servers Khaled ElMeleegy Alan Cox Willy Zwaenepoel.
Background: Operating Systems Brad Karp UCL Computer Science CS GZ03 / M th November, 2008.
OPERATING SYSTEM SUPPORT DISTRIBUTED SYSTEMS CHAPTER 6 Lawrence Heyman July 8, 2002.
Providing Differentiated Levels of Service in Web Content Hosting Jussara Almeida, etc... First Workshop on Internet Server Performance, 1998 Computer.
Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9 th Edition Chapter 4: Threads.
Operating System 4 THREADS, SMP AND MICROKERNELS.
Operating Systems: Internals and Design Principles
© Janice Regan, CMPT 300, May CMPT 300 Introduction to Operating Systems Operating Systems Processes and Threads.
LAIO: Lazy Asynchronous I/O For Event Driven Servers Khaled Elmeleegy Alan L. Cox.
Threads. Readings r Silberschatz et al : Chapter 4.
An Efficient Threading Model to Boost Server Performance Anupam Chanda.
Code Development for High Performance Servers Topics Multithreaded Servers Event Driven Servers Example - Game Server code (Quake) A parallelization exercise.
Performance Analysis of HPC with Lmbench Didem Unat Supervisor: Nahil Sobh July 22 nd 2005 netfiles.uiuc.edu/dunat2/www.
CORE Lab. E.E. 1 Soft timers : efficient microsecond so ftware timer support for network proc essing Mohit Aron and Peter Druschel 17 th ACM Symposium.
Threads, SMP and Microkernels Process vs. thread: –Unit of resource ownership (process has virtual address space, memory, I/O channels, files) –Unit of.
Lecturer 3: Processes multithreaded Operating System Concepts Process Concept Process Scheduling Operation on Processes Cooperating Processes Interprocess.
Multithreading vs. Event Driven in Code Development of High Performance Servers.
1 Chapter 5: Threads Overview Multithreading Models & Issues Read Chapter 5 pages
Introduction to threads
Operating System Overview
Chapter 4: Threads.
Threads vs. Events SEDA – An Event Model 5204 – Operating Systems.
Diskpool and cloud storage benchmarks used in IT-DSS
Chapter 4: Multithreaded Programming
INTER-PROCESS COMMUNICATION
Operating System Concepts
What Happens if There is no Free Frame?
CS703 - Advanced Operating Systems
Operating System 4 THREADS, SMP AND MICROKERNELS
Chapter 13: I/O Systems I/O Hardware Application I/O Interface
Chapter 13: I/O Systems I/O Hardware Application I/O Interface
Chapter 4: Threads.
Light-Weight Process (Threads)
CS Introduction to Operating Systems
Presentation transcript:

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

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 V2.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 V1.3.1 –Zeus V1.30

Test Platform Server –Speed: 333 MHz Pentium II –Memory: 128 MB Operating System –Solaris 2.6 –Free BSD – 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 SolarisFreeBSD

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