From 8de86d6c176445517cbbb4b25691229a2d10ca55 Mon Sep 17 00:00:00 2001 From: Rich Bowen Date: Mon, 10 Mar 2003 04:36:44 +0000 Subject: [PATCH] Applying patch from 2.0 branch, however, there still appears to be some invalid xml in here, although I have been completely unable to track it down. This patch adds discussion of removing unneeded modules, as well as section titles to facilitate links directly to the various sections. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@98956 13f79535-47bb-0310-9956-ffa450edef68 --- docs/manual/misc/perf-tuning.xml | 90 +++++++++++++++++++++++--------- 1 file changed, 66 insertions(+), 24 deletions(-) diff --git a/docs/manual/misc/perf-tuning.xml b/docs/manual/misc/perf-tuning.xml index 115edd6635..62f3174d94 100644 --- a/docs/manual/misc/perf-tuning.xml +++ b/docs/manual/misc/perf-tuning.xml @@ -44,12 +44,16 @@

The single biggest hardware issue affecting webserver performance is RAM. A webserver should never ever have to swap, - swapping increases the latency of each request beyond a point + as swapping increases the latency of each request beyond a point that users consider "fast enough". This causes users to hit stop and reload, further increasing the load. You can, and should, control the MaxClients setting so that your server - does not spawn so many children it starts swapping.

+ does not spawn so many children it starts swapping. This procedure + for doing this is simple: determine the size of your average Apache + process, by looking at your process list via a tool such as + top, and divide this into your total available memory, + leaving some room for other processes.

Beyond that the rest is mundane: get a fast enough CPU, a fast enough network card, and fast enough disks, where "fast @@ -105,21 +109,34 @@ -

+
- HostnameLookups + HostnameLookups and other DNS considerations

Prior to Apache 1.3, HostnameLookups defaulted to On. This adds latency to every request because it requires a DNS lookup to complete before the request is finished. In - Apache 1.3 this setting defaults to Off. - However (1.3 or later), if you use any Allow from domain - or Deny from domain directives then you will pay for + Apache 1.3 this setting defaults to Off. If you need + to have addresses in your log files resolved to hostnames, use the + logresolve + program that comes with Apache, on one of the numerous log + reporting packages which are available.

+ +

It is recommended that you do this sort of postprocessing of + your log files on some machine other than the production web + server machine, in order that this activity not adversely affect + server performance.

+ + If you use any Allow + from domain or Deny from domain + directives (i.e., using a hostname, or a domain name, rather than + an IP address) then you will pay for a double reverse DNS lookup (a reverse, followed by a forward - to make sure that the reverse is not being spoofed). So for the - highest performance avoid using these directives (it's fine to - use IP addresses rather than domain names).

+ to make sure that the reverse is not being spoofed). For best + performence, therefore, use IP addresses, rather than names, when + using these directives, if possible.

Note that it's possible to scope the directives, such as within a <Location /server-status> section. @@ -140,19 +157,9 @@ could consider doing the gethostbyname call in the specific CGIs that need it.

-

Similarly, if you need to have hostname information in your - server logs in order to generate reports of this information, - you can postprocess your log file with logresolve, - so that these lookups can be done without making the client wait. - It is recommended that you do this postprocessing, and any other - statistical analysis of the log file, somewhere other than your - production web server machine, in order that this activity does - not adversely affect server performance.

-
-
+ -
+
AllowOverride @@ -233,7 +240,7 @@
-
+
Negotiation @@ -261,6 +268,13 @@ determined by reading this single file, rather than having to scan the directory for files.

+

If your site needs content negotiation consider using + type-map files, rather than the Options + MultiViews directive to accomplish the negotiation. See the + Content Negotiation + documentation for a full discussion of the methods of negotiation, + and instructions for creating type-map files.

+
@@ -331,7 +345,7 @@
-
+
Process Creation @@ -440,6 +454,34 @@
+
+ + Modules + +

Since memory usage is such an important consideration in + performance, you should attempt to eliminate modules that youare + not actually using. If you have built the modules as DSOs, eliminating modules is a simple + matter of commenting out the associated LoadModule directive for that module. + This allows you to experiment with removing modules, and seeing + if your site still functions in their absense.

+ +

If, on the other hand, you have modules statically linked + into your Apache binary, you will need to recompile Apache in + order to remove unwanted modules.

+ +

An associated question that arises here is, of course, what + modules you need, and which ones you don't. The answer here + will, of course, vary from one web site to another. However, the + minimal list of modules which you can get by with tends + to include mod_mime, mod_dir, + and mod_log_config. mod_log_config is, + of course, optional, as you can run a web site without log + files. This is, however, not recommended.

+ +
+
Atomic Operations -- 2.40.0