SlideShare a Scribd company logo
1 of 98
Web Servers:  Implementation and Performance Erich Nahum IBM T.J. Watson Research Center www.research.ibm.com/people/n/nahum [email_address]
Contents and Timeline: ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Things  Not  Covered in Tutorial ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Assumptions and Expectations ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Objectives and Takeaways ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],After this tutorial, hopefully we will all know: Many lessons should be applicable to any networked  server, e.g., files, mail, news, DNS, LDAP, etc.
Acknowledgements Many people contributed comments and  suggestions to this tutorial, including: Abhishek Chandra Mark Crovella Suresh Chari Peter Druschel Jim Kurose Balachander Krishnamurthy Vivek Pai Jennifer Rexford Anees Shaikh Srinivasan Seshan Errors are all mine, of course.
Chapter 1: Introduction to the World-Wide Web (WWW)
Introduction to the WWW ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Client Proxy Server http request http request http response http response
How are Requests Generated? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Most browser requests are HTTP requests.
How are DNS names resolved? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
DNS in Action myclient.watson.ibm.com ns.watson.ibm.com (name server) A.GTLD-SERVER.NET (name server for .edu) ns.ucla.edu (name server) 12.100.104.5 www.ipam.ucla.edu www.ipam.ucla.edu? www.ipam.ucla.edu? ns.ucla.edu (TTL = 1d) 12.100.104.5 (TTL = 10 min) 12.100.104.5 www.ipam.ucla.edu? GET /index.html 200 OK index.html
What Happens Then? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],<html> <head> <meta  name=“Author” content=“Erich Nahum”> <title> Linux Web Server Performance </title> </head> <body text=“#00000”> <img width=31 height=11 src=“ibmlogo.gif”> <img src=“images/new.gif> <h1>Hi There!</h1> Here’s lots of cool linux stuff! <a href=“more.html”> Click here</a> for more! </body> </html> sample html file
So What’s a Web Server Do? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Server capacity planning is non-trivial.
What do HTTP Requests Look Like? GET /images/penguin.gif HTTP/1.0 User-Agent: Mozilla/0.9.4 (Linux 2.2.19) Host: www.kernel.org Accept: text/html, image/gif, image/jpeg Accept-Encoding: gzip Accept-Language: en Accept-Charset: iso-8859-1,*,utf-8 Cookie: B=xh203jfsf; Y=3sdkfjej <cr><lf> ,[object Object],[object Object],[object Object],[object Object]
What Kind of Requests are there? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
What Do Responses Look Like? HTTP/1.0 200 OK Server: Tux 2.0 Content-Type: image/gif Content-Length: 43 Last-Modified: Fri, 15 Apr 1994 02:36:21 GMT Expires: Wed, 20 Feb 2002 18:54:46 GMT Date: Mon, 12 Nov 2001 14:29:48 GMT Cache-Control: no-cache Pragma: no-cache Connection: close Set-Cookie: PA=wefj2we0-jfjf <cr><lf> <data follows…> ,[object Object]
What Responses are There? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
What are all these Headers? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Specify capabilities and properties: Server must pay attention to respond properly.
The Role of Proxies clients servers proxy Internet ,[object Object],[object Object],[object Object]
Why have a Proxy? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Proxy Placement in the Web clients servers proxy Internet proxy proxy “ reverse” proxy ,[object Object],[object Object],[object Object],[object Object]
Content Distribution Networks origin servers proxy Internet proxy proxy ,[object Object],[object Object],[object Object],[object Object]
Mechanisms for CDN’s ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
DNS Based Request-Routing local nameserver client request- routing DNS name server www.service.com cdn 2 cdn 4 cdn 3 cdn 1 cdn 5 service.com? service.com? cdn 3 cdn 3
Summary: Introduction to WWW ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Chapter 2: Outline of a Typical Web Server Transaction
Outline of an HTTP Transaction   ,[object Object],[object Object],[object Object],[object Object],[object Object],initialize; forever do { get request; process; send response; log request; } server in a nutshell
Readying a Server   ,[object Object],[object Object],[object Object],[object Object],[object Object],s = socket(); /* allocate listen socket */ bind(s, 80);  /* bind to TCP port 80  */ listen(s);  /* indicate willingness to accept */ while (1) { newconn = accept(s); /* accept new connection */b
Processing a Request   ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],remoteIP = getsockname(newconn); remoteHost = gethostbyname(remoteIP); gettimeofday(currentTime); read(newconn, reqBuffer, sizeof(reqBuffer)); reqInfo = serverParse(reqBuffer);
Processing a Request (cont) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],fileName = parseOutFileName(requestBuffer); fileAttr = stat(fileName); serverCheckFileStuff(fileName, fileAttr); open(fileName);
Responding to a Request ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],read(fileName, fileBuffer); headerBuffer = serverFigureHeaders(fileName, reqInfo); write(newSock, headerBuffer); write(newSock, fileBuffer); close(newSock); close(fileName); write(logFile, requestInfo);
Optimizing the Basic Structure   ,[object Object],[object Object],[object Object]
Optimizations: Caching ,[object Object],fileDescriptor =  lookInFDCache(fileName); metaInfo =  lookInMetaInfoCache(fileName); headerBuffer =  lookInHTTPHeaderCache(fileName); Idea is to exploit  locality  in client requests. Many files are requested over and over  (e.g., index.html). ,[object Object],[object Object]
Optimizations: Caching (cont) ,[object Object],fileData =  lookInFileDataCache(fileName); fileData =  lookInMMapCache(fileName); remoteHostName =  lookRemoteHostCache(fileName); ,[object Object],[object Object]
Optimizations: OS Primitives ,[object Object],acceptExtended(listenSock, &newSock, readBuffer,  &remoteInfo); currentTime = *mappedTimePointer; buffer[0] = firstHTTPHeader; buffer[1] = secondHTTPHeader; buffer[2] = fileDataBuffer; writev(newSock, buffer, 3); ,[object Object],[object Object]
OS Primitives (cont) ,[object Object],httpInfo = cacheLookup(reqBuffer); sendfile(newConn,  httpInfo->headers,  httpInfo->fileDescriptor,  OPT_CLOSE_WHEN_DONE);  ,[object Object],[object Object],All this assumes proper OS support.  Most have it these days.
An Accelerated Server Example   ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],That’s it! acceptex(socket, newConn, reqBuffer, remoteHostInfo); httpInfo = cacheLookup(reqBuffer); sendfile(newConn, httpInfo->headers,  httpInfo->fileDescriptor, OPT_CLOSE_WHEN_DONE); write(logFile, requestInfo);
Complications ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Complications (cont) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Summary: Outline of a Typical HTTP Transaction ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Chapter 3:  Server Architectural Models
Server Architectural Models ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Process Model (ex: Apache) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Process Model: Pros and Cons ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Thread Model (Ex: JAWS) ,[object Object],[object Object],[object Object]
Thread Model: Pros and Cons ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Event Model (Ex: Flash) ,[object Object],[object Object],while (1) { accept new connections until none remaining; call select() on all active file descriptors; for each FD: if (fd ready for reading) call read(); if (fd ready for writing) call write(); }
Event-Driven: Pros and Cons ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
In-Kernel Model (Ex: Tux) ,[object Object],[object Object],[object Object],[object Object],user/ kernel  boundary user-space server kernel-space server user/ kernel  boundary TCP HTTP IP ETH SOCK TCP IP ETH HTTP
In-Kernel Model: Pros and Cons ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
So What’s the Performance? ,[object Object],[object Object],[object Object]
Summary: Server Architectures ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Chapter 5:  Workload Characterization
Workload Characterization ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Factors to Consider ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],client? proxy? server?
Probability Refresher ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Important Distributions ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
More Probability ,[object Object],[object Object],[object Object]
What Info is Useful? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Sample Logs for Illustration We’ll use statistics generated from these logs as examples. 12,445,739 11,485,600 5,800,000 1,586,667 Hits: 28,804,852 54,697,108 10,515,507 14,171,711 Bytes: 319,698 86,0211 80,921 256,382 Clients: Corporate Presence Corporate Presence Nagano 1998 Olympics Event Site Kasparov-Deep Blue Event Site Description: 1 day in Feb 2001 1 day in June 1998 2 days in Feb 1998 2 weeks in May 1997 Period: 42,874 15,788 30,465 2,293 URLS: IBM 2001 IBM 1998 Olympics 1998 Chess 1997 Name:
Request Methods ,[object Object],[object Object],noise noise  noise noise Others: 00.2% 00.02% 00.04 % 00.007% POST 02% 00.08% 00.3 % 04% HEAD 97% 99.3% 99.6% 96% GET IBM 2001 IBM 1998 Olympics 1998 Chess 1997
Response Codes ,[object Object],[object Object],[object Object],67.72 --.-- --.-- --.-- 15.11 16.26 00.001 00.001 00.009 00.79 00.002 00.07 00.006 00.0003 00.0004 75.28 00.00001 --.-- --.-- 01.18 22.84 00.003 00.0001 00.01 00.65 --.-- 00.006 00.0005 00.0001 00.005 76.02 --.-- --.-- --.-- 00.05 23.24 00.0001 00.001 00.02 00.64 --.-- 00.003 00.0001 --.-- 00.00004 85.32 --.-- 00.25 00.05 00.05 13.73 00.001 --.—- 00.01 00.55 --.-- --.-- --.-- --.-- 00.0003 OK NO_CONTENT PARTIAL_CONTENT MOVED_PERMANENTLY MOVED_TEMPORARILY NOT_MODIFIED BAD_REQUEST UNAUTHORIZED FORBIDDEN NOT_FOUND PROXY_AUTH SERVER_ERROR NOT_IMPLEMENTED SERVICE_UNAVAIL UNKNOWN 200 204 206 301 302 304 400 401 403 404 407 500 501 503 ??? IBM 2001 IBM 1998 Olympics 1998 Chess 1997 Meaning Code
Resource (File) Sizes ,[object Object],[object Object],[object Object]
Tails from the File Size ,[object Object],[object Object]
Response (Transfer) Sizes ,[object Object],[object Object]
Tails of Transfer Size ,[object Object],[object Object]
Resource Popularity ,[object Object],[object Object],[object Object],[object Object]
Number of Embedded Objects ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Trend seems to be that number is increasing over time.
Session Inter-Arrivals ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Protocol Support ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Appears that we are in the middle of a slow transition to 1.1
Summary: Workload Characterization ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Chapter 6: Workload Generators
Why Workload Generators? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Measure Reproduce Find Problem Fix and/or improve The Performance Debugging Cycle
Problems with Workload Generators ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
How does W. Generation Work? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Responses Requests
Evolution: WebStone ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],www.mindcraft.com/webstone 5 MB 0.10 500 KB 0.90 50 KB 14.00 5 KB 50.00 500 B 35.00 Size  Percentage
Evolution: SPECWeb96 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],100 KB – 1 MB 1.00 10-100 KB 14.00 1-10 KB 50.00 0-1 KB 35.00 Size  Percentage
SPECWeb96 (cont) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Evolution: SURGE ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
SURGE (cont) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Evolution: S-client ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
S-Client (cont) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Evolution: SPECWeb99 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
SPECWeb99 (cont) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
SPECWeb99 (cont) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
SpecWeb99 vs. File Sizes ,[object Object]
SpecWeb99 vs. File Size Tail ,[object Object]
SpecWeb99 vs.Transfer Sizes ,[object Object],[object Object]
Spec99 vs.Transfer Size Tails ,[object Object]
Spec99 vs. Resource Popularity ,[object Object]
Evolution: TPC-W ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
TPC-W (cont) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Summary: Workload Generators ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
End of this tutorial… ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],www.sigmetrics.org
Chapter: Event Notification ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Chapter: Introduction to TCP ,[object Object],[object Object],[object Object],[object Object],[object Object],application transport network link physical
Chapter: TCP Dynamics ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Chapter: Server TCP Implementation ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]

More Related Content

What's hot

UOW-Caching and new ways to improve response time (Paper)
UOW-Caching and new ways to improve response time (Paper)UOW-Caching and new ways to improve response time (Paper)
UOW-Caching and new ways to improve response time (Paper)Guson Kuntarto
 
Covert timing channels using HTTP cache headers
Covert timing channels using HTTP cache headersCovert timing channels using HTTP cache headers
Covert timing channels using HTTP cache headersyalegko
 
Http - All you need to know
Http - All you need to knowHttp - All you need to know
Http - All you need to knowGökhan Şengün
 
Web services in PHP using the NuSOAP library
Web services in PHP using the NuSOAP libraryWeb services in PHP using the NuSOAP library
Web services in PHP using the NuSOAP libraryFulvio Corno
 
Performance Evaluation of XMPP on the Web
Performance Evaluation of XMPP on the WebPerformance Evaluation of XMPP on the Web
Performance Evaluation of XMPP on the WebMarkku Laine
 
Configuring the Apache Web Server
Configuring the Apache Web ServerConfiguring the Apache Web Server
Configuring the Apache Web Serverwebhostingguy
 
Apache httpd-2.4 : Watch out cloud!
Apache httpd-2.4 : Watch out cloud!Apache httpd-2.4 : Watch out cloud!
Apache httpd-2.4 : Watch out cloud!Jim Jagielski
 
IBM Connect 2016 - Break out of the Box
IBM Connect 2016 - Break out of the BoxIBM Connect 2016 - Break out of the Box
IBM Connect 2016 - Break out of the BoxKarl-Henry Martinsson
 
What is Node.js? (ICON UK)
What is Node.js? (ICON UK)What is Node.js? (ICON UK)
What is Node.js? (ICON UK)Tim Davis
 
Securing Your MongoDB Deployment
Securing Your MongoDB DeploymentSecuring Your MongoDB Deployment
Securing Your MongoDB DeploymentMongoDB
 
Art and Science of Web Sites Performance: A Front-end Approach
Art and Science of Web Sites Performance: A Front-end ApproachArt and Science of Web Sites Performance: A Front-end Approach
Art and Science of Web Sites Performance: A Front-end ApproachJiang Zhu
 

What's hot (20)

UOW-Caching and new ways to improve response time (Paper)
UOW-Caching and new ways to improve response time (Paper)UOW-Caching and new ways to improve response time (Paper)
UOW-Caching and new ways to improve response time (Paper)
 
Covert timing channels using HTTP cache headers
Covert timing channels using HTTP cache headersCovert timing channels using HTTP cache headers
Covert timing channels using HTTP cache headers
 
Http - All you need to know
Http - All you need to knowHttp - All you need to know
Http - All you need to know
 
Web services in PHP using the NuSOAP library
Web services in PHP using the NuSOAP libraryWeb services in PHP using the NuSOAP library
Web services in PHP using the NuSOAP library
 
Http
HttpHttp
Http
 
Mdb dn 2016_11_ops_mgr
Mdb dn 2016_11_ops_mgrMdb dn 2016_11_ops_mgr
Mdb dn 2016_11_ops_mgr
 
Branch office access with branch cache
Branch office access with branch cacheBranch office access with branch cache
Branch office access with branch cache
 
Performance Evaluation of XMPP on the Web
Performance Evaluation of XMPP on the WebPerformance Evaluation of XMPP on the Web
Performance Evaluation of XMPP on the Web
 
60 Admin Tips
60 Admin Tips60 Admin Tips
60 Admin Tips
 
Configuring the Apache Web Server
Configuring the Apache Web ServerConfiguring the Apache Web Server
Configuring the Apache Web Server
 
Codefest2015
Codefest2015Codefest2015
Codefest2015
 
Apache httpd-2.4 : Watch out cloud!
Apache httpd-2.4 : Watch out cloud!Apache httpd-2.4 : Watch out cloud!
Apache httpd-2.4 : Watch out cloud!
 
Apache Web Server Setup 1
Apache Web Server Setup 1Apache Web Server Setup 1
Apache Web Server Setup 1
 
IBM Connect 2016 - Break out of the Box
IBM Connect 2016 - Break out of the BoxIBM Connect 2016 - Break out of the Box
IBM Connect 2016 - Break out of the Box
 
HTTP
HTTPHTTP
HTTP
 
5-WebServers.ppt
5-WebServers.ppt5-WebServers.ppt
5-WebServers.ppt
 
What is Node.js? (ICON UK)
What is Node.js? (ICON UK)What is Node.js? (ICON UK)
What is Node.js? (ICON UK)
 
Securing Your MongoDB Deployment
Securing Your MongoDB DeploymentSecuring Your MongoDB Deployment
Securing Your MongoDB Deployment
 
Art and Science of Web Sites Performance: A Front-end Approach
Art and Science of Web Sites Performance: A Front-end ApproachArt and Science of Web Sites Performance: A Front-end Approach
Art and Science of Web Sites Performance: A Front-end Approach
 
What's up with HTTP?
What's up with HTTP?What's up with HTTP?
What's up with HTTP?
 

Viewers also liked

Job roles in the film industry by fateha
Job roles in the film industry by fatehaJob roles in the film industry by fateha
Job roles in the film industry by fatehahaverstockmedia
 
Math online orientation summer 2015
Math online orientation summer 2015Math online orientation summer 2015
Math online orientation summer 2015Claudia Parfitt
 
Financial Freedom -- Life Insurance As An Asset Class
Financial Freedom -- Life Insurance As An Asset ClassFinancial Freedom -- Life Insurance As An Asset Class
Financial Freedom -- Life Insurance As An Asset Classguardiancds21
 
Narrative Thoery
Narrative ThoeryNarrative Thoery
Narrative Thoerychrystina13
 
Extemporaneous speeches
Extemporaneous speechesExtemporaneous speeches
Extemporaneous speechesCharles Flynt
 

Viewers also liked (6)

Job roles in the film industry by fateha
Job roles in the film industry by fatehaJob roles in the film industry by fateha
Job roles in the film industry by fateha
 
A Bridge Too Far
A Bridge Too FarA Bridge Too Far
A Bridge Too Far
 
Math online orientation summer 2015
Math online orientation summer 2015Math online orientation summer 2015
Math online orientation summer 2015
 
Financial Freedom -- Life Insurance As An Asset Class
Financial Freedom -- Life Insurance As An Asset ClassFinancial Freedom -- Life Insurance As An Asset Class
Financial Freedom -- Life Insurance As An Asset Class
 
Narrative Thoery
Narrative ThoeryNarrative Thoery
Narrative Thoery
 
Extemporaneous speeches
Extemporaneous speechesExtemporaneous speeches
Extemporaneous speeches
 

Similar to Presentation (PowerPoint File)

Distributed web based systems
Distributed web based systemsDistributed web based systems
Distributed web based systemsReza Gh
 
Web Fundamentals
Web FundamentalsWeb Fundamentals
Web Fundamentalsarunv
 
Type URL, Enter, and Then …
Type URL, Enter, and Then …Type URL, Enter, and Then …
Type URL, Enter, and Then …Jinglun Li
 
PHP Training: Module 1
PHP Training: Module 1PHP Training: Module 1
PHP Training: Module 1hussulinux
 
Ch 22: Web Hosting and Internet Servers
Ch 22: Web Hosting and Internet ServersCh 22: Web Hosting and Internet Servers
Ch 22: Web Hosting and Internet Serverswebhostingguy
 
Web Services 2009
Web Services 2009Web Services 2009
Web Services 2009Cathie101
 
Web Services 2009
Web Services 2009Web Services 2009
Web Services 2009Cathie101
 
Lecture 1 Introduction to Web Development.pptx
Lecture 1 Introduction to Web Development.pptxLecture 1 Introduction to Web Development.pptx
Lecture 1 Introduction to Web Development.pptxKevi20
 
Feb. 9, 2010 ICACT 2010@Phoenix Park, Korea
Feb. 9, 2010 ICACT 2010@Phoenix Park, Korea Feb. 9, 2010 ICACT 2010@Phoenix Park, Korea
Feb. 9, 2010 ICACT 2010@Phoenix Park, Korea webhostingguy
 
Jaimin chp-7 - application layer- 2011 batch
Jaimin   chp-7 - application layer- 2011 batchJaimin   chp-7 - application layer- 2011 batch
Jaimin chp-7 - application layer- 2011 batchJaimin Jani
 
introduction to Web system
introduction to Web systemintroduction to Web system
introduction to Web systemhashim102
 

Similar to Presentation (PowerPoint File) (20)

Distributed web based systems
Distributed web based systemsDistributed web based systems
Distributed web based systems
 
Web server
Web serverWeb server
Web server
 
5-WebServers.ppt
5-WebServers.ppt5-WebServers.ppt
5-WebServers.ppt
 
Web servers
Web serversWeb servers
Web servers
 
Jagmohancrawl
JagmohancrawlJagmohancrawl
Jagmohancrawl
 
DNS & HTTP overview
DNS & HTTP overviewDNS & HTTP overview
DNS & HTTP overview
 
Introduction to HTTP
Introduction to HTTPIntroduction to HTTP
Introduction to HTTP
 
Web Fundamentals
Web FundamentalsWeb Fundamentals
Web Fundamentals
 
Type URL, Enter, and Then …
Type URL, Enter, and Then …Type URL, Enter, and Then …
Type URL, Enter, and Then …
 
PHP Training: Module 1
PHP Training: Module 1PHP Training: Module 1
PHP Training: Module 1
 
Ch 22: Web Hosting and Internet Servers
Ch 22: Web Hosting and Internet ServersCh 22: Web Hosting and Internet Servers
Ch 22: Web Hosting and Internet Servers
 
WP Chap 1 & 2.pptx
WP Chap 1 & 2.pptxWP Chap 1 & 2.pptx
WP Chap 1 & 2.pptx
 
Application layer protocols
Application layer protocolsApplication layer protocols
Application layer protocols
 
Web Services 2009
Web Services 2009Web Services 2009
Web Services 2009
 
Web Services 2009
Web Services 2009Web Services 2009
Web Services 2009
 
Lecture 1 Introduction to Web Development.pptx
Lecture 1 Introduction to Web Development.pptxLecture 1 Introduction to Web Development.pptx
Lecture 1 Introduction to Web Development.pptx
 
Feb. 9, 2010 ICACT 2010@Phoenix Park, Korea
Feb. 9, 2010 ICACT 2010@Phoenix Park, Korea Feb. 9, 2010 ICACT 2010@Phoenix Park, Korea
Feb. 9, 2010 ICACT 2010@Phoenix Park, Korea
 
Jaimin chp-7 - application layer- 2011 batch
Jaimin   chp-7 - application layer- 2011 batchJaimin   chp-7 - application layer- 2011 batch
Jaimin chp-7 - application layer- 2011 batch
 
Web
WebWeb
Web
 
introduction to Web system
introduction to Web systemintroduction to Web system
introduction to Web system
 

More from webhostingguy

Running and Developing Tests with the Apache::Test Framework
Running and Developing Tests with the Apache::Test FrameworkRunning and Developing Tests with the Apache::Test Framework
Running and Developing Tests with the Apache::Test Frameworkwebhostingguy
 
MySQL and memcached Guide
MySQL and memcached GuideMySQL and memcached Guide
MySQL and memcached Guidewebhostingguy
 
Novell® iChain® 2.3
Novell® iChain® 2.3Novell® iChain® 2.3
Novell® iChain® 2.3webhostingguy
 
Load-balancing web servers Load-balancing web servers
Load-balancing web servers Load-balancing web serversLoad-balancing web servers Load-balancing web servers
Load-balancing web servers Load-balancing web serverswebhostingguy
 
SQL Server 2008 Consolidation
SQL Server 2008 ConsolidationSQL Server 2008 Consolidation
SQL Server 2008 Consolidationwebhostingguy
 
Master Service Agreement
Master Service AgreementMaster Service Agreement
Master Service Agreementwebhostingguy
 
PHP and MySQL PHP Written as a set of CGI binaries in C in ...
PHP and MySQL PHP Written as a set of CGI binaries in C in ...PHP and MySQL PHP Written as a set of CGI binaries in C in ...
PHP and MySQL PHP Written as a set of CGI binaries in C in ...webhostingguy
 
Dell Reference Architecture Guide Deploying Microsoft® SQL ...
Dell Reference Architecture Guide Deploying Microsoft® SQL ...Dell Reference Architecture Guide Deploying Microsoft® SQL ...
Dell Reference Architecture Guide Deploying Microsoft® SQL ...webhostingguy
 
Managing Diverse IT Infrastructure
Managing Diverse IT InfrastructureManaging Diverse IT Infrastructure
Managing Diverse IT Infrastructurewebhostingguy
 
Web design for business.ppt
Web design for business.pptWeb design for business.ppt
Web design for business.pptwebhostingguy
 
IT Power Management Strategy
IT Power Management Strategy IT Power Management Strategy
IT Power Management Strategy webhostingguy
 
Excel and SQL Quick Tricks for Merchandisers
Excel and SQL Quick Tricks for MerchandisersExcel and SQL Quick Tricks for Merchandisers
Excel and SQL Quick Tricks for Merchandiserswebhostingguy
 
Parallels Hosting Products
Parallels Hosting ProductsParallels Hosting Products
Parallels Hosting Productswebhostingguy
 
Microsoft PowerPoint presentation 2.175 Mb
Microsoft PowerPoint presentation 2.175 MbMicrosoft PowerPoint presentation 2.175 Mb
Microsoft PowerPoint presentation 2.175 Mbwebhostingguy
 

More from webhostingguy (20)

File Upload
File UploadFile Upload
File Upload
 
Running and Developing Tests with the Apache::Test Framework
Running and Developing Tests with the Apache::Test FrameworkRunning and Developing Tests with the Apache::Test Framework
Running and Developing Tests with the Apache::Test Framework
 
MySQL and memcached Guide
MySQL and memcached GuideMySQL and memcached Guide
MySQL and memcached Guide
 
Novell® iChain® 2.3
Novell® iChain® 2.3Novell® iChain® 2.3
Novell® iChain® 2.3
 
Load-balancing web servers Load-balancing web servers
Load-balancing web servers Load-balancing web serversLoad-balancing web servers Load-balancing web servers
Load-balancing web servers Load-balancing web servers
 
SQL Server 2008 Consolidation
SQL Server 2008 ConsolidationSQL Server 2008 Consolidation
SQL Server 2008 Consolidation
 
What is mod_perl?
What is mod_perl?What is mod_perl?
What is mod_perl?
 
What is mod_perl?
What is mod_perl?What is mod_perl?
What is mod_perl?
 
Master Service Agreement
Master Service AgreementMaster Service Agreement
Master Service Agreement
 
Notes8
Notes8Notes8
Notes8
 
PHP and MySQL PHP Written as a set of CGI binaries in C in ...
PHP and MySQL PHP Written as a set of CGI binaries in C in ...PHP and MySQL PHP Written as a set of CGI binaries in C in ...
PHP and MySQL PHP Written as a set of CGI binaries in C in ...
 
Dell Reference Architecture Guide Deploying Microsoft® SQL ...
Dell Reference Architecture Guide Deploying Microsoft® SQL ...Dell Reference Architecture Guide Deploying Microsoft® SQL ...
Dell Reference Architecture Guide Deploying Microsoft® SQL ...
 
Managing Diverse IT Infrastructure
Managing Diverse IT InfrastructureManaging Diverse IT Infrastructure
Managing Diverse IT Infrastructure
 
Web design for business.ppt
Web design for business.pptWeb design for business.ppt
Web design for business.ppt
 
IT Power Management Strategy
IT Power Management Strategy IT Power Management Strategy
IT Power Management Strategy
 
Excel and SQL Quick Tricks for Merchandisers
Excel and SQL Quick Tricks for MerchandisersExcel and SQL Quick Tricks for Merchandisers
Excel and SQL Quick Tricks for Merchandisers
 
OLUG_xen.ppt
OLUG_xen.pptOLUG_xen.ppt
OLUG_xen.ppt
 
Parallels Hosting Products
Parallels Hosting ProductsParallels Hosting Products
Parallels Hosting Products
 
Microsoft PowerPoint presentation 2.175 Mb
Microsoft PowerPoint presentation 2.175 MbMicrosoft PowerPoint presentation 2.175 Mb
Microsoft PowerPoint presentation 2.175 Mb
 
Reseller's Guide
Reseller's GuideReseller's Guide
Reseller's Guide
 

Presentation (PowerPoint File)

  • 1. Web Servers: Implementation and Performance Erich Nahum IBM T.J. Watson Research Center www.research.ibm.com/people/n/nahum [email_address]
  • 2.
  • 3.
  • 4.
  • 5.
  • 6. Acknowledgements Many people contributed comments and suggestions to this tutorial, including: Abhishek Chandra Mark Crovella Suresh Chari Peter Druschel Jim Kurose Balachander Krishnamurthy Vivek Pai Jennifer Rexford Anees Shaikh Srinivasan Seshan Errors are all mine, of course.
  • 7. Chapter 1: Introduction to the World-Wide Web (WWW)
  • 8.
  • 9.
  • 10.
  • 11. DNS in Action myclient.watson.ibm.com ns.watson.ibm.com (name server) A.GTLD-SERVER.NET (name server for .edu) ns.ucla.edu (name server) 12.100.104.5 www.ipam.ucla.edu www.ipam.ucla.edu? www.ipam.ucla.edu? ns.ucla.edu (TTL = 1d) 12.100.104.5 (TTL = 10 min) 12.100.104.5 www.ipam.ucla.edu? GET /index.html 200 OK index.html
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24. DNS Based Request-Routing local nameserver client request- routing DNS name server www.service.com cdn 2 cdn 4 cdn 3 cdn 1 cdn 5 service.com? service.com? cdn 3 cdn 3
  • 25.
  • 26. Chapter 2: Outline of a Typical Web Server Transaction
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41. Chapter 3: Server Architectural Models
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53. Chapter 5: Workload Characterization
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60. Sample Logs for Illustration We’ll use statistics generated from these logs as examples. 12,445,739 11,485,600 5,800,000 1,586,667 Hits: 28,804,852 54,697,108 10,515,507 14,171,711 Bytes: 319,698 86,0211 80,921 256,382 Clients: Corporate Presence Corporate Presence Nagano 1998 Olympics Event Site Kasparov-Deep Blue Event Site Description: 1 day in Feb 2001 1 day in June 1998 2 days in Feb 1998 2 weeks in May 1997 Period: 42,874 15,788 30,465 2,293 URLS: IBM 2001 IBM 1998 Olympics 1998 Chess 1997 Name:
  • 61.
  • 62.
  • 63.
  • 64.
  • 65.
  • 66.
  • 67.
  • 68.
  • 69.
  • 70.
  • 71.
  • 72. Chapter 6: Workload Generators
  • 73.
  • 74.
  • 75.
  • 76.
  • 77.
  • 78.
  • 79.
  • 80.
  • 81.
  • 82.
  • 83.
  • 84.
  • 85.
  • 86.
  • 87.
  • 88.
  • 89.
  • 90.
  • 91.
  • 92.
  • 93.
  • 94.
  • 95.
  • 96.
  • 97.
  • 98.