Flash An efficient and portable Web server Vivek S. Pai Peter Druschel Willy Zwaenepoel Rice University presented by Andreas Anagnostatos CSE 291 Feb.
Download ReportTranscript 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?