Flash An efficient and portable Web server Vivek S. Pai Peter Druschel Willy Zwaenepoel Rice University presented by Andreas Anagnostatos CSE 291 Feb.
Download
Report
Transcript Flash An efficient and portable Web server Vivek S. Pai Peter Druschel Willy Zwaenepoel Rice University presented by Andreas Anagnostatos CSE 291 Feb.
Flash
An efficient and portable
Web server
Vivek S. Pai
Peter Druschel
Willy Zwaenepoel
Rice University
presented by
Andreas Anagnostatos
CSE 291
Feb. 2, 2000
Jump to first
page
Overview
Key features
Request processing
steps
Server architectures
Flash implementation
Performance
Simulations/Comparisons
Conclusions
Discussion
Jump to first
page
Key features
A new Web server
architecture
Aggressive optimizations
Portable
High performance across
a wide range of
workloads
Jump to first
page
Blocking steps of a
request
Disk blocking
Find File
Read File
Network blocking
Accept Connection
Read Request
Send Header
Send Data
Multi-process architecture
Pros:
no synchronization necessary
Cons:
difficult to perform optimizations
Multi-threaded architecture
Pros:
share global variables
lower overhead for switching
than MP
Cons:
OS must provide support
synchronization
SPED architecture
Pros:
No synchronization
No context switching
Cons:
Disk reads block
AMPED architecture
Pros:
Single process
No context switching
Helpers can be
processes or threads
No synchronization
Non blocking
Cons:
NONE?
Flash Cons:
Extra cost wrt SPED for
IPC between the main
process and the helpers
More memory
requirements than SPED
OTHERS?
Jump to first
page
Flash optimizations
and caches
Memory-mapped files
Byte alignment (writev)
Performance
Apache (MP)
Zeus
(SPED)
Flash
(AMPED)
Flash-MT
Flash-MP
Flash-SPED
Single file test
Trace test
Trace test w/
varying dataset size
Individual
optimization effects
WAN emulation
Initial rise due to
aggregation effects
MT declines due to
per-thread switching
and memory overhead
MP per-request
overhead
Summary
AMPED combines cache
behavior of SPED and disk
behavior of MT and PS
Shared address space
No synchronization
Low overhead for helpers
High performance in real
workloads
Portable (?)
Discussion...
Would you prefer Flash
over a commercial server?
Other features missing?