dgaudet 98/05/09 17:11:14
Modified:htdocs/manual/misc perf-tuning.html
Log:
update with a few more links
Revision ChangesPath
1.10 +35 -4 apache-1.3/htdocs/manual/misc/perf-tuning.html
Index: perf-tuning.html
===
RCS file: /export/home/cvs/apache-1.3/htdocs/manual/misc/perf-tuning.html,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- perf-tuning.html 1998/03/03 01:21:56 1.9
+++ perf-tuning.html 1998/05/10 00:11:14 1.10
@@ -238,7 +238,7 @@
web server uses multiple CODEListen/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 CODEselect(2)/CODE.
-CODEselect(2)/CODE indicates that a socket has EMnone/EM or
+CODEselect(2)/CODE indicates that a socket has EMzero/EM or
EMat 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 @@
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=#patchespatches section below/a.
PAs described earlier, CODERule STATUS=yes/CODE causes two
CODEgettimeofday/CODE calls and a call to CODEtimes/CODE:
@@ -782,6 +783,29 @@
That's 19 system calls, of which 4 remain relatively easy to remove,
but don't seem worth the effort.
+h3a name=patchesAppendix: 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
+liA
+a href=http://www.arctic.org/~dgaudet/apache/1.3/shared_time.patch;
+patch/a to remove all codetime(2)/code system calls.
+liA
+a
href=http://www.arctic.org/~dgaudet/apache/1.3/mod_include_speedups.patch;
+patch/a to remove various system calls from codemod_include/code,
+these calls are used by few sites but required for backwards compatibility.
+liA
+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
+
H3Appendix: The Pre-Forking Model/H3
PApache (on Unix) is a EMpre-forking/EM model server. The
@@ -819,9 +843,16 @@
PApache'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 Apache, one 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.