1 / 18

Understanding Factors That Influence Performance of a Web Server

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

prue
Download Presentation

Understanding Factors That Influence Performance of a Web Server

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Understanding Factors That Influence Performance of a Web Server Presentation CS535 Project By Thiru

  2. 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

  3. 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

  4. What Is a Client ? • Typical client – a browser. • The steps involved in retrieving www.wpi.edu.

  5. 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

  6. Protocol Enhancement • From HTTP 1.0 to HTTP1.1 • Persistent connections

  7. Data Touching Operations in TCP Reference: [1]

  8. 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

  9. Disk I/O • Not a pressing issue • A lot of small files are cached in typical server implementation • mmap() maps files directly to memory

  10. SRPT Scheduling (Shortest-remaining-processing-time) • Reference: [2]

  11. SRPT Scheduling (contd…) • Reference: [2]

  12. Enhance Network I/O Functions • Enhancements to poll() • Enhancements to select() • Declare_interest() • /Dev/poll on Solaris – add, modify, and remove interest sets

  13. Use asynchronous model • RT signals in Linux – Abeshk Chandra’s paper.

  14. Radically new approaches • DB approach • TCP server

  15. The Big Picture • The end user experience can be enhanced in three ways • Replication of content – mirroring • Distributed caching • Improve WS performance

  16. 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

  17. 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

  18. 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 !

More Related