You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by ma...@hyperreal.org on 1998/04/15 14:21:46 UTC

cvs commit: apache-1.3/htdocs/manual/misc perf.html

martin      98/04/15 05:21:46

  Modified:    htdocs/manual/misc perf.html
  Log:
  Add notice about some inefficient SVR4 implementations of time zones in gettimeofday()
  
  Revision  Changes    Path
  1.20      +49 -0     apache-1.3/htdocs/manual/misc/perf.html
  
  Index: perf.html
  ===================================================================
  RCS file: /home/cvs/apache-1.3/htdocs/manual/misc/perf.html,v
  retrieving revision 1.19
  retrieving revision 1.20
  diff -u -u -r1.19 -r1.20
  --- perf.html	1998/02/05 20:04:30	1.19
  +++ perf.html	1998/04/15 12:21:45	1.20
  @@ -30,6 +30,7 @@
   <LI><A HREF="#Linux">Linux</A>
   <LI><A HREF="#Solaris">Solaris</A>
   <LI><A HREF="#SunOS">SunOS 4.x</A>
  +<LI><A HREF="#SVR4">SVR4</A>
   </UL>
   
   <HR>
  @@ -117,6 +118,54 @@
   More information on tuning SOMAXCONN on SunOS can be found at
   <A HREF="http://www.islandnet.com/~mark/somaxconn.html">
   http://www.islandnet.com/~mark/somaxconn.html</A>.
  +
  +<P><HR>
  +
  +<H3><A NAME="SVR4">
  +SVR4
  +</A></H3>
  +
  +Some SVR4 versions waste three system calls on every
  +<SAMP>gettimeofday()</SAMP> call. Depending on the syntactic
  +form of the <SAMP>TZ</SAMP> environment variable, these
  +systems have several different algorithms to determine the
  +local time zone (presumably <EM>compatible</EM> with
  +something). The following example uses the central european
  +time zone to demonstrate this:
  +<DL>
  + <DT><STRONG>TZ=:MET</STRONG>
  + <DD>This form delegates the knowledge of the time zone
  +     information to an external compiled zoneinfo file
  +     (&agrave; la BSD).<BR>
  +     <STRONG>Caveat:</STRONG> Each time the gettimeofday()
  +     function is called, the external zone info is read in
  +     again (at least on some SVR4 systems). That results in
  +     three wasted system calls with every apache request
  +     served.<PRE>
  +     open("/usr/lib/locale/TZ/MET", O_RDONLY) = 3
  +     read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 7944) = 778
  +     close(3)                                = 0</PRE>
  +
  + <DT><STRONG>TZ=MET-1MDT,M3.5.0/02:00:00,M10.5.0/03:00:00</STRONG>
  + <DD>This syntax form (&agrave; la SYSV) contains all the
  +     knowledge about time zone beginning and ending times in
  +     its external representation. It has to be parsed each
  +     time it is evaluated, resulting in a slight computing
  +     overhead, but it requires no system call. Though the
  +     table lookup &agrave; la BSD is the more sophisticated
  +     technical solution, the bad SVR4 implementation makes
  +     this the preferred syntax on systems which otherwise
  +     access the external zone info file repeatedly.
  +</DL>
  +You should use the <SAMP>truss</SAMP> utility on a
  +single-process apache server (started with the <SAMP>-X</SAMP>
  +debugging switch) to determine whether your system can profit
  +from the second form of the <SAMP>TZ</SAMP> environment
  +variable. If it does, you could integrate the setting of the
  +preferred <SAMP>TZ</SAMP> syntax into the httpd startup
  +script, which is usually simply a copy of (or symbolic link
  +to) the <SAMP>apachectl</SAMP> utility script, or into the
  +system's <SAMP>/etc/TIMEZONE</SAMP> script.
   
   <P><HR>