]> git.ipfire.org Git - thirdparty/apache/httpd.git/commitdiff
update with a few more links
authordgaudet <dgaudet@unknown>
Sun, 10 May 1998 00:11:14 +0000 (00:11 +0000)
committerdgaudet <dgaudet@unknown>
Sun, 10 May 1998 00:11:14 +0000 (00:11 +0000)
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@81228 13f79535-47bb-0310-9956-ffa450edef68

docs/manual/misc/perf-tuning.html

index 264b5ae27b15cc25003648f2530b711839fcf6ad..c36636967ab78bede9edc1b857314c7ebb238008 100644 (file)
@@ -238,7 +238,7 @@ Suppose your
 web server uses multiple <CODE>Listen</CODE> statements to listen on
 either multiple ports or multiple addresses.  In order to test each
 socket to see if a connection is ready Apache uses <CODE>select(2)</CODE>.
-<CODE>select(2)</CODE> indicates that a socket has <EM>none</EM> or
+<CODE>select(2)</CODE> indicates that a socket has <EM>zero</EM> or
 <EM>at least one</EM> connection waiting on it.  Apache's model includes
 multiple children, and all the idle ones test for new connections at the
 same time.  A naive implementation looks something like this
@@ -647,7 +647,8 @@ as a result of writing the log.  At least one of these is required to
 properly implement the HTTP protocol.  The second occurs because the
 Common Log Format dictates that the log record include a timestamp of the
 end of the request.  A custom logging module could eliminate one of the
-calls.
+calls.  Or you can use a method which moves the time into shared memory,
+see the <a href="#patches">patches section below</a>.
 
 <P>As described earlier, <CODE>Rule STATUS=yes</CODE> causes two
 <CODE>gettimeofday</CODE> calls and a call to <CODE>times</CODE>:
@@ -782,6 +783,29 @@ munmap(0x400e3000, 6144)                = 0
 That's 19 system calls, of which 4 remain relatively easy to remove,
 but don't seem worth the effort.
 
+<h3><a name="patches">Appendix: Patches Available</a></h3>
+
+There are
+<a href="http://www.arctic.org/~dgaudet/apache/1.3/">
+several performance patches available for 1.3.</a>  But they may
+be slightly out of date by the time Apache 1.3.0 has been released,
+it shouldn't be difficult for someone with a little C knowledge to
+update them.  In particular:
+
+<ul>
+<li>A 
+<a href="http://www.arctic.org/~dgaudet/apache/1.3/shared_time.patch">
+patch</a> to remove all <code>time(2)</code> system calls.
+<li>A
+<a href="http://www.arctic.org/~dgaudet/apache/1.3/mod_include_speedups.patch">
+patch</a> to remove various system calls from <code>mod_include</code>,
+these calls are used by few sites but required for backwards compatibility.
+<li>A
+<a href="http://www.arctic.org/~dgaudet/apache/1.3/top_fuel.patch">
+patch</a> which integrates the above two plus a few other speedups at the
+cost of removing some functionality.
+</ul>
+
 <H3>Appendix: The Pre-Forking Model</H3>
 
 <P>Apache (on Unix) is a <EM>pre-forking</EM> model server.  The
@@ -819,9 +843,16 @@ depending on the operating system.
 
 <P>Apache's core code is already multithread aware, and Apache version
 1.3 is multithreaded on NT.  There have been at least two other experimental
-implementations of threaded Apache (one using the 1.3 code base on DCE,
+implementations of threaded Apacheone using the 1.3 code base on DCE,
 and one using a custom user-level threads package and the 1.0 code base,
-neither are available publically).  Part of our redesign for version 2.0
+neither are available publically.  There is also an experimental port of
+Apache 1.3 to <a href="http://www.mozilla.org/docs/refList/refNSPR/">
+Netscape's Portable Run Time</a>, which
+<a href="http://www.arctic.org/~dgaudet/apache/2.0/">is available</a>
+(but you're encouraged to join the
+<a href="http://dev.apache.org/mailing-lists">new-httpd mailing list</a>
+if you intend to use it).
+Part of our redesign for version 2.0
 of Apache will include abstractions of the server model so that we
 can continue to support the pre-forking model, and also support various
 threaded models.