<p>The Performance Tuning page in the Apache 1.3 documentation says:
</p>
<blockquote><p>
- “Apache is a general webserver, which is designed to be
+ "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.”</p>
+ webserver."</p>
</blockquote>
<p>However, this sentence was written a few years ago, and in the
meantime several things have happened. On one hand, web server
69 root 15 -5 0 0 0 S 0 0.0 0:00.04 kblockd/1
70 root 15 -5 0 0 0 S 0 0.0 0:00.04 kblockd/2</pre></example>
- <p>Top is a wonderful tool even though it’s slightly resource
+ <p>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 indispensable in determining
the size of a running process, which comes in handy when
<p>
The Error Log is configured through the <directive module="core">ErrorLog</directive>
and <directive module="core">LogLevel</directive>
- configuration directives. The error log of httpd’s main
+ configuration directives. The error log of httpd's main
server configuration receives the log messages that pertain
to the entire server: startup, shutdown, crashes, excessive
process spawns, etc. The <directive module="core">ErrorLog</directive>
APACHE=/usr/local/apache2<br />
HTTPD=$APACHE/bin/httpd<br />
mv $APACHE/logs/access_log
- $APACHE/logarchive/access_log-‘date +%F‘<br />
+ $APACHE/logarchive/access_log-`date +%F`<br />
$HTTPD -k graceful
</example>
server has many virtual hosts, all the open logfiles put a
resource burden on your system, and it may be preferable to
log to a single file. Use the <code>%v</code>
- format character at the start of your <directive module="mod_log_config">LogFormat</directive>
- and starting 2.3.8 of your <directive module="core">ErrorLog</directive>
+ format character at the start of your <directive module="mod_log_config">LogFormat</directive>
+ and starting 2.3.8 of your <directive module="core">ErrorLog</directive>
to make httpd print the hostname of the virtual host that
received the request or the error at the beginning of each
log line. A simple Perl script can split out the log file
</title>
<p>It is useful to generate a test load to monitor system
performance under realistic operating circumstances. Besides
- commercial packages such as <a href="http://learnloadrunner.com/">LoadRunner</a>
+ commercial packages such as <a href="http://learnloadrunner.com/">LoadRunner</a>
,there are a number of freely available tools to generate a
test load against your web server.
</p>
</li>
<li>
<p>ASF external projects, that have proven to be quite
- good: grinder, httperf, tsung, <a href="http://funkload.nuxeo.org/">FunkLoad</a>
+ good: grinder, httperf, tsung, <a href="http://funkload.nuxeo.org/">FunkLoad</a>
</p>
</li>
</ul>
<p>When you load-test your web server, please keep in mind that if
that server is in production, the test load may negatively
- affect the server’s response. Also, any data traffic you
+ affect the server's response. Also, any data traffic you
generate may be charged against your monthly traffic allowance.
</p>
MPM runs a smaller number of child processes, and spawns
multiple request handling threads within each child process. In
2.4 MPMs are no longer hard-wired. They too can be exchanged
- via <directive module="core">LoadModule</directive>.
- The default MPM in 2.4 is the event MPM.
+ via <directive module="core">LoadModule</directive>.
+ The default MPM in 2.4 is the event MPM.
</p>
<p>The maximum number of workers, be they pre-forked child
processes or threads within a process, is an indication of how
denied access. However, once requests start backing up, system
performance is likely to degrade.
</p>
- <p>Finally, if the httpd server in question is not executing any third-party
+ <p>Finally, if the httpd server in question is not executing any third-party
code, via <code>mod_php</code>, <code>mod_perl</code> or similar,
we recommend the use of <module>mpm_event</module>. This MPM is ideal
for situations where httpd serves as a thin layer between clients and
</code>
is evenly divisible by <code>ThreadsPerChild
</code>
- .If you set either directive to a number that doesn’t
+ .If you set either directive to a number that doesn't
meet this requirement, Apache will send a message of
complaint to the error log and adjust the <code>
ThreadsPerChild
</p>
<example>
- total RAM − RAM for OS − RAM for external programs<br />
+ total RAM - RAM for OS - RAM for external programs<br />
MaxClients =
-------------------------------------------------------<br />
RAM per httpd process
value. The Linux kernel will put extra memory to good use
for caching disk access. On Solaris you need enough
available real RAM memory to create any process. If no real
- memory is available, httpd will start writing ‘No space
- left on device’ messages to the error log and be unable
+ memory is available, httpd will start writing 'No space
+ left on device' messages to the error log and be unable
to fork additional child processes, so a higher <code>
MaxClients
</code>
their functionality and configuration directives, you can
turn them off by commenting out the corresponding
<directive>LoadModule</directive>
- lines. Read the documentation on each module’s
+ lines. Read the documentation on each module's
functionality before deciding whether to keep it enabled.
While the performance overhead of an unused module is
small, it's also unnecessary.
<p>This can be run periodically from Cron, after you upload
content, etc. To make Apache substitute the statically
- rendered pages for the dynamic content, we’ll use
+ rendered pages for the dynamic content, we'll use
mod_rewrite. This module is included with the Apache source
code, but is not compiled by default. It can be built with
the server by passing the option <code>--enable-rewrite[=shared]</code>
a better example here too.-->
<p>
The Apache Software Foundation Wiki is served by MoinMoin.
- MoinMoin is written in Python and runs as a CGI. To date, any
+ MoinMoin is written in Python and runs as a CGI. To date, any
attempts to run it under mod_python has been unsuccessful.
The CGI proved to place an untenably high load on the
server machine, especially when the Wiki was being indexed