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