Understanding Factors That Influence Performance of a Web Server Presentation CS535 Project By Thiru
Goals • Understand how a typical web server works • Infer potential factors that can influence the performance • Discover the dynamics of the interactions • Look at each factor in detail • Some miscellaneous topics, if time permits • Conclude
What Is a Web Server ? • A server program implementing HTTP protocol • A typical server would: • Listen on a known port (usually 80) • When a request arrives, create a new socket, hand it over to a helper process • Go back to the listening mode • The helper process would communicate with the client and serve the request
What Is a Client ? • Typical client – a browser. • The steps involved in retrieving www.wpi.edu.
What Are the Potential Bottlenecks ? • The listening process • The forking model • The disk I/O • The network, i.E. The sending end • The scheduling model for tasks
Protocol Enhancement • From HTTP 1.0 to HTTP1.1 • Persistent connections
Data Touching Operations in TCP Reference: 
Forking • Spawn a new process for every request • Spawn a new thread for every request • Use events to handle requests • Use I/O completion mechanisms to handle processing of events • Use asynchronous model of execution
Disk I/O • Not a pressing issue • A lot of small files are cached in typical server implementation • mmap() maps files directly to memory
SRPT Scheduling (Shortest-remaining-processing-time) • Reference: 
SRPT Scheduling (contd…) • Reference: 
Enhance Network I/O Functions • Enhancements to poll() • Enhancements to select() • Declare_interest() • /Dev/poll on Solaris – add, modify, and remove interest sets
Use asynchronous model • RT signals in Linux – Abeshk Chandra’s paper.
Radically new approaches • DB approach • TCP server
The Big Picture • The end user experience can be enhanced in three ways • Replication of content – mirroring • Distributed caching • Improve WS performance
The Difference Between the Lab and the Real World • Slow and Indeterministic behavior of connections • Request sizes vary through a large range • In real world there are layers of caches and mirrors
The Difference Between the Lab and the Real World • Network speed – connection speed – varies widely • It’s hard to simulate real world environment in labs. Hence the results are hard to verify • The test beds are not accurate – the model is skewed. S-client paper
Conclusion • Factors influencing performance • Network I/O operations • Socket behavior • Scheduling • TCP implementation • Disk I/O does not have a big impact since small files are cached • A lot more, but this is what is presentable within 1800 seconds !