Dear Wiki user, You have subscribed to a wiki page or wiki category on "Httpd Wiki" for change notification.
The "PerformanceScalingUp" page has been changed by jmcg. http://wiki.apache.org/httpd/PerformanceScalingUp?action=diff&rev1=1&rev2=2 -------------------------------------------------- See also: http://wiki.apache.org/httpd/PerformanceScalingOut + = 1 Introduction = + The Performance Tuning page in the Apache 1.3 documentation says: + + “Apache is a general webserver, which is designed to be correct first, + and fast second. Even so, its performance is quite satisfactory. Most + sites have less than 10Mbits of outgoing bandwidth, which Apache + can fill using only a low end Pentium-based webserver.” + + However, this sentence was written a few years ago, and in the meantime + several things have happened. On one hand, web server hardware has become + much faster. On the other hand, many sites now are allowed much more than + ten megabits per second of outgoing bandwidth. In addition, web applications + have become more complex. The classic brochureware site is alive and well, + but the web has grown up substantially as a computing application platform + and webmasters may find themselves running dynamic content in Perl, PHP or + Java, all of which take a toll on performance. + + Therefore, in spite of strides forward in machine speed and bandwidth al- + lowances, web server performance and web application performance remain ar- + eas of concern. In this paper and the ApacheCon session it accompanies, several + aspects of web server performance will be discussed. + + == 1.1 What Will and Will Not Be Discussed == + The session will focus on easily accessible configuration and tuning options for + Apache 1.3 and 2 as well as monitoring tools. Monitoring tools will allow you + to observe your web server to gather information about its performance, or + lack thereof. We’ll assume that you don’t have an unlimited budget for server + hardware, so the existing infrastructure will have to do the job. You have + no desire to compile your own Apache, or to recompile the operating system + kernel. We do assume, though, that you have some familiarity with the Apache + configuration file. + + = 2 Monitoring Your Server = + The first task when sizing or performance-tuning your server is to find out how + your system is currently performing. By monitoring your server under real-world + load, or artificially generated load, you can extrapolate its behavior under stress, + such as when your site is mentioned on Slashdot. + + == 2.1 Monitoring Tools == + === 2.1.1 top === + The top tool ships with Linux and FreeBSD, and can be downloaded for So- + laris2 . It collects a number of statistics for the system and for each running + process, then displays them interactively on your terminal. The data displayed + is refreshed every second and varies by platform, but typically includes system + load average, number of processes and their current states, the percent CPU(s) + time spent executing user and system code, and the state of the virtual mem- + ory system. The data displayed for each process is typically configurable and + includes its process name and ID, priority and nice values, memory footprint, + and percentage CPU usage. An example top display is shown in Figure 1. + + Top is a wonderful tool even though it’s slightly resource intensive (when + running, its own process is usually in the top ten CPU gluttons). It is indis- + pensable in determining the size of a running process, which comes in handy + when determining how many server processes you can run on your machine. + How to do this is described in Section 3.1.3. Top is, however, an interactive tool + and running it continuously has few if any advantages. + + === 2.1.2 free === + This command is only available on Linux. It shows how much memory and swap + space is in use. Linux allocates unused memory as file system cache. The free + command shows usage both with and without this cache. The free command + can be used to find out how much memory the operating system is using, as + + described in the paragraph ‘Sizing MaxClients’ on page 10. The output of free + looks like this: + + {{{ + scte...@brutus:~$ free + }}} + {{{ + total used free shared buffers cached + }}} + {{{ + Mem: 4026028 3901892 124136 0 253144 841044 + }}} + {{{ + -/+ buffers/cache: 2807704 1218324 + }}} + {{{ + Swap: 3903784 12540 3891244 + }}} + --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
