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