CS6320:  SW Engineering of Web Based Systems

 

Performance Issues & Techniques for Improvement

  • big bottleneck often time for database access
    • try to reduce number of database calls....cache information (memcached)


  • surge/ high load
    • load balancers to distribute requests among multiple web servers (if webservers simple e.g. apache + x then cheap to replecate on simple hardware)
    • increase number of web servers
    • reverse caching - e.g. squid, can increate # of request / second can process
    • look at faster/less over head web server - e.g. lighttpd over Apache (can have other problems...tradeoffs)


  • heavy data delivery
    • look at distributed databases
    • CDNs - content delivery networks - commercially available set over a grid of computers to purposely serve and store heavy damand data. Typically servered out of memory.

Some MORE details on Techniques TO IMPROVE Performance

web caching

  • is the caching of web documents (e.g., HTML pages, images) in order to reduce bandwidth usage, server load, and perceived lag. A web cache stores copies of documents passing through it; subsequent requests may be satisfied from the cache if certain conditions are met.
  • Because closer is better, web caches store popular content closer to the user. These shared network appliances reduce bandwidth requirements, reduce server load, and improve the client response times for content stored in the cache.

load balancing

  • Server-load balancing uses one or more layer 4–7 switches, also known as a web switch, content switch, or multilayer switch to share traffic among a number of servers or web caches.
  • the switch is assigned a single virtual IP address.
  • Traffic arriving at the switch is then directed to one of the real web servers attached to the switch.
  • This has the advantages of balancing load, increasing total capacity, improving scalability, and providing increased reliability by redistributing the load of a failed web server and providing server health checks.

request routing

  • Request routing directs client requests to the content source best able to serve the request.
  • This may involve directing a client request to the service node that is closest to the client, or to the one with the most capacity.
  • A variety of algorithms are used to route the request. These include Global Server Load Balancing, DNS-based request routing, HTML rewriting, and anycasting.

CDN

content delivery networks - commercially available set over a grid of computers to purposely serve and store heavy damand data. Typically servered out of memory.

  • A content delivery network or content distribution network (CDN) is a system of computers networked together across the Internet that cooperate transparently to deliver content (especially large media content) to end users.
  • Some manufactures include Akamai, Limelight Networks (LLNW) and CDNetworks.
  • number of nodes and servers making up a CDN varies, depending on the architecture, some reaching thousands of nodes with tens of thousands of servers

reverse caching & reverse proxy & web accelorator reverse proxy

  • reverse proxy is a proxy server that is installed within the neighborhood of one or more servers. Typically, reverse proxies are used in front of Web servers.
    • All connections coming from the Internet addressed to one of the Web servers are routed through the proxy server, which may either deal with the request itself or pass the request wholly or partially to the main Web servers.
    • Hence a reverse proxy could be used for load balancing a cluster of web servers.
  • reverse Caching stores static content in memory. A reverse proxy can offload the Web servers by caching static content, such as images. Can often satisfy a considerable amount of website requests, greatly reducing the load on the central web server. Sometimes referred to as a Web accelerator.

 

squid

  • is a proxy server and web cache daemon
  • comes before web-server.
  • open source
  • Speeds up a web server by caching repeated requests, to caching web, DNS and other computer network lookups for a group of people sharing network resources, to aiding security by filtering traffic.
  • Primarily used for HTTP and FTP, Squid includes limited support for several other protocols including SSL, Internet Gopher and HTTPS.
  • how to setup squid example

 

© Lynne Grewe