This presentation includes custom animations.

This presentation includes custom animations.
To view the animations, you must view the presentation in Slide Show mode
and activeX controls must be allowed.
If you have opened this lesson in PowerPoint, use the PowerPoint menus to view it in
slide show mode.
If you have opened this lesson in a browser and see a bar similar to that below, click
on the Slide Show icon
A notice similar to the one below may appear warning that ActiveX or
other scripts are disabled. Enable the controls for this website in order
to see the animations.
Hardware and Software Basics
This slide show introduces hardware and software considerations for a web server.
Vocabulary: Apache server
arithmetic logic unit
cache
client
client/server paradigm
CPU
end-to-End response
GET
hard drive
HTTP requests per second
Microsoft IIS (Internet Information Services)
NIC
payload
RAM
response time
server
Time to First Byte
web server
Christine S. Wolfe
Ohio University Lancaster
2008-Aug-01
If you are hosting your website in-house (ie: on your premises) or if you have entered into a
co-location hosting agreement with a third party provider, you will have to obtain a computer
or set of computers on which to run your server.
What are some of the things you need to take into consideration when buying a computer
or set of computers to use as a web server?
Before you buy, you must determine how your server will function.
Purchase a system that has the features that best support the functions you will
implement.
Images and video require more storage space than do simple html text pages.
Dynamic pages require more processor power than do static pages.
High traffic sites require more bandwidth than do low traffic sites.
Unless you have unlimited funds, you will likely have to choose which options best suit your needs.
Computer hardware are the tangible parts of a computer system.
Hardware can be broken down into the following categories
Hardware
Input
Devices
Output
Devices
Volatile
Memory
Secondary
Storage
Processor
Structural
Components
keyboard
mouse
NIC
monitor
speakers
NIC
RAM
cache
hard drive
jump drive
ALU
case
power supply
fan
system board
The components that are most critical for server performance are:
• Processor
• Hard drives & other secondary storage capacity
• RAM and Cache
• Network Adapter(s)
We will discuss how these components influence server performance but we
won't worry about current specs. Any specs I would give you would be out of
date by the time you read it. If you understand what the component does then
you will know which are most important for your system and know where to
spend your money for the best benefit.
Processor
All that a computer really does is add.
Almost nothing happens in a computer without being processed as
a set of instructions + data sent through a processor. A processor
includes a) the arithmetic logic unit (ALU) where the instructions
are processed, b) registers to hold the instructions and data so the
ALU can grab them, and c) usually some cache.
Secondary storage is sometimes called permanent storage because data stored on a
secondary storage device doesn't disappear when the power is turned off. When you
"save" your work, you are writing a copy of it to secondary storage.
As far as your computer is concerned, your hard drive, a memory card, and a jump drive
all serve the same purpose. They have data that must be retrieved before the CPU can
work with it.
When choosing a hard drive or other
secondary storage device, you want to
consider how much it can hold and how
quickly it can find, read, and write data.
RAM stands for Random Access Memory. It is often referred to as "main" memory.
It can also be considered temporary memory because it cannot hold information unless it
has power.
Any time that your computer wants to work with data that is stored on a secondary
storage device such as your hard drive, a copy of the data must be read from the
secondary storage into RAM. Reading from RAM is much much much faster than
reading from a hard drive so you would like to be able to store a large amount of data in
RAM. Factors to consider with RAM is the amount of storage and how efficiently it can
find and move data.
RAM
Memory cache is a small, fast, set of memory located physically close to the ALU.
Cache is used to temporarily store data that is likely to be needed in the near future.
When the CPU orders data from main memory (RAM), the system will save the retrieved
data and some of the nearby data in a small cache that is more readily accessed. This
may reduce the retrieval time for future requests.
II need
need
green!
red!
CPU
ALU
Level 1
(primary)
cache
Level 2
(secondary)
cache
RAM
A network adapter is a piece of hardware
that allows the server to move data to
and from the Internet. It is possible to
install more than one adapter in a server.
As all the data that is being uploaded
and downloaded must pass through an
adapter, a high bandwidth capacity
adapter has a huge influence on the
speed of transmission.
We looked at 4 hardware components that are important considerations for server performance.
Which 1 would give the best benefit to a server that must
store a lot of images or other large files?
Hard drive
Which 1 would give the best benefit to a server that
experiences extremely high volumes of traffic?
Network Adapter(s)
Which 2 would give the best benefit to a server that
must perform a lot of calculations when creating
dynamic pages?
Processor, RAM and Cache
Click
Tip
On the midterm and final you will be expected to know
which component you would optimize based on the
purpose of a website.
Software are the electronic instructions that cause the computer to retrieve, process, and
store data. Software is broken down into 2 categories:
Software
Operating
Software
Application
Software
Windows
Mac OS
Apache server
Word
Excel
Photoshop
A web server (like most computers) must have an operating system.
An operating system (sometimes abbreviated as "OS") is the program that, after
being initially loaded into the computer by a boot program, manages all the other
programs in a computer. The other programs are called applications or application
programs. The application programs make use of the operating system by making
requests for services through a defined application program interface (API). ...
www.webasyst.net/glossary.htm
A set of programs that control how the system works. Controls the running of
programs and provides such services as resource allocation, scheduling, input
and output control, and data management.
www.ncsa.uiuc.edu/UserInfo/Resources/Hardware/IBMp690/IBM/usr/share/man/in
fo/en_US/a_doc_lib/aixuser/glossary/O.htm
Apache server and Microsoft Internet Information Services are the dominant
web server operating systems.
Apache is free open source
software
Internet Information Services is
proprietary software by Microsoft
Steep learning curve for most
effective use.
Easy to install and use
Large installed base with readily
available support from user
community.
Microsoft is a frequent target of
hackers and virus writers. Frequent
patches must be installed.
index.html is the home page that
opens if the user does not
specify a file name.
default.html is the home page that
opens if the user does not specify a
file name.
Market Share for Top Servers Across All Domains August 1995 – June 2010
http://news.netcraft.com/archives/2011/01/
Click Tip
This is a chart of SERVER types. Don't confuse it with the
browser and OS charts from the Unit 02 Browser Trends exercise.
OK, now we have all the "stuff" to make our web server.
How can we tell how well it's working?
Let's start with a review of what the web server is supposed
to do.
Web server and browsers are engaged in what is called a "client/server" relationship.
You get one guess which one is the server and which one is the client.
Of course the web server is the server – and just what is it serving up? Web pages!
The server sits out there in the cloud with a belly full of web pages just waiting for
some browser to ask for one of them. The server is patient and will sit and wait forever
as long as it has power.
When a user requests a page via a browser, only then does the browser go out and
find the server and ask it for a page.
It is in response to this request that the server really goes into action. This is when
you as the web site owner want the server to perform its very best. You want it to
provide the page that was requested and to provide it as quickly as possible.
The Client/Server Paradigm
1. The server starts and waits
2. The client initiates contact via a request for a service
3. The client and server exchange messages (data, files, etc)
4. They both agree to end the exchange
Come and
get it! Get
your web
pages here.
I want what you have
SERVER
CLIENT
Here you go.
Thanks.
That's all I need.
OK. Bye
Have you ever tried to go to a web page
only to have the following message show up on your screen?
See the next
slide to learn
where this
comes from.
When the client browser contacts the server, it sends a GET message.
The server sends a response code that let's the client browser know if it is able to send the page.
The codes are categorized by their first digit.
Informational 1xx: This class of status code indicates a provisional
response, consisting only of the Status-Line and optional headers, and is
terminated by an empty line. eg. 100 Continue
Successful 2xx: This class of status code indicates that the client's
request was successfully received, understood, and accepted eg: 200 OK
Redirection 3xx: This class of status code indicates that further action
needs to be taken by the user agent in order to fulfill the request. eg: 301
Moved Permanently
Client Error 4xx: The 4xx class of status code is intended for cases in
which the client seems to have erred. eg 404 Not Found
Server Error 5xx": Response status codes beginning with the digit "5"
indicate cases in which the server is aware that it has erred or is
incapable of performing the request. eg: 505 HTTP Version Not
Supported
A complete listing can be found at: http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
Assuming your web server has the page or knows how to make the page and wants to
send it to the client browser, how can you measure how well it is performing?Measure
the responsiveness of a web site during peak periods.
The following are 3 common metrics for evaluating server responsiveness.
HTTP requests per second
the number of GET requests that the server
responds to in one second
Stop!
Go!
Click
Tip
Always measure performance during peak usage.
End-to-End response
Start
Timing
how long it takes from the time a GET request
is received and the time the last byte of the
requested document is delivered..
Stop
Timing
how long it takes from the time a GET request
is received and the time the first byte of the
requested document is delivered..
Time To First Byte
Start
Timing
Stop
Timing
Works Cited
1.
HTTP: The Definitive Guideby David Gourley; Brian Totty Publisher:
O'ReillyPub Date: September 2002 ISBN: 1-56592-509-2Pages: 656 Chapter
5. Web Servers
2.
http://www.dba-oracle.com/t_best_webserver_hardware_configuration.htm.
What is the best webserver hardware configuration?
Web Tips by Burleson Consulting
3.
http://www.seoconsultants.com/articles/1000/cache-control.asp
What Is Caching and How Does It Apply to the Web?
4.
http://news.netcraft.com/archives/web_server_survey.html