presentation_flash

advertisement
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 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 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
FreeBSD
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
Download