mirror of
https://github.com/apache/httpd.git
synced 2025-08-06 11:06:17 +00:00

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1873230 13f79535-47bb-0310-9956-ffa450edef68
157 lines
5.7 KiB
XML
157 lines
5.7 KiB
XML
<?xml version="1.0"?>
|
|
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
|
|
<?xml-stylesheet type="text/xsl" href="../style/manual.en.xsl"?>
|
|
<!-- $LastChangedRevision$ -->
|
|
|
|
<!--
|
|
Licensed to the Apache Software Foundation (ASF) under one or more
|
|
contributor license agreements. See the NOTICE file distributed with
|
|
this work for additional information regarding copyright ownership.
|
|
The ASF licenses this file to You under the Apache License, Version 2.0
|
|
(the "License"); you may not use this file except in compliance with
|
|
the License. You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
See the License for the specific language governing permissions and
|
|
limitations under the License.
|
|
-->
|
|
|
|
<modulesynopsis metafile="mod_status.xml.meta">
|
|
|
|
<name>mod_status</name>
|
|
<description>Provides information on server activity and
|
|
performance</description>
|
|
<status>Base</status>
|
|
<sourcefile>mod_status.c</sourcefile>
|
|
<identifier>status_module</identifier>
|
|
|
|
|
|
<summary>
|
|
<p>The Status module allows a server administrator to find out
|
|
how well their server is performing. A HTML page is presented
|
|
that gives the current server statistics in an easily readable
|
|
form. If required this page can be made to automatically
|
|
refresh (given a compatible browser). Another page gives a
|
|
simple machine-readable list of the current server state.</p>
|
|
|
|
<p>The details given are:</p>
|
|
|
|
<ul>
|
|
<li>The number of workers serving requests</li>
|
|
|
|
<li>The number of idle workers</li>
|
|
|
|
<li>The status of each worker, the number of requests that
|
|
worker has performed and the total number of bytes served by
|
|
the worker (*)</li>
|
|
|
|
<li>A total number of accesses and byte count served (*)</li>
|
|
|
|
<li>The time the server was started/restarted and the time it
|
|
has been running for</li>
|
|
|
|
<li>Averages giving the number of requests per second, the
|
|
number of bytes served per second and the average number of
|
|
bytes per request (*)</li>
|
|
|
|
<li>The current percentage CPU used by each worker and in
|
|
total by all workers combined (*)</li>
|
|
|
|
<li>The current hosts and requests being processed (*)</li>
|
|
</ul>
|
|
|
|
<p>The lines marked "(*)" are only available if
|
|
<directive module="core">ExtendedStatus</directive>
|
|
is <code>On</code>. In version 2.3.6, loading mod_status will
|
|
toggle <directive module="core">ExtendedStatus</directive> On
|
|
by default.</p>
|
|
|
|
<note>
|
|
<strong>It should be noted that if <module>mod_status</module> is
|
|
loaded into the server, its handler capability is available
|
|
in <em>all</em> configuration files, including
|
|
<em>per</em>-directory files (<em>e.g.</em>,
|
|
<code>.htaccess</code>). This may have security-related
|
|
ramifications for your site.</strong>
|
|
</note>
|
|
|
|
</summary>
|
|
|
|
<section id="enable">
|
|
<title>Enabling Status Support</title>
|
|
|
|
<p>To enable status reports only for browsers from the example.com
|
|
domain add this code to your <code>httpd.conf</code>
|
|
configuration file</p>
|
|
<highlight language="config">
|
|
<Location "/server-status">
|
|
SetHandler server-status
|
|
Require host example.com
|
|
</Location>
|
|
</highlight>
|
|
|
|
<p>You can now access server statistics by using a Web browser
|
|
to access the page
|
|
<code>http://your.server.name/server-status</code></p>
|
|
</section>
|
|
|
|
<section id="autoupdate">
|
|
|
|
<title>Automatic Updates</title>
|
|
<p>You can get the status page to update itself automatically if
|
|
you have a browser that supports "refresh". Access the page
|
|
<code>http://your.server.name/server-status?refresh=N</code> to
|
|
refresh the page every N seconds.</p>
|
|
|
|
</section>
|
|
|
|
<section id="machinereadable">
|
|
|
|
<title>Machine Readable Status File</title>
|
|
<p>A machine-readable version of the status file is available by
|
|
accessing the page
|
|
<code>http://your.server.name/server-status?auto</code>. This
|
|
is useful when automatically run, see the Perl program
|
|
<code>log_server_status</code>, which you will find in the
|
|
<code>/support</code> directory of your Apache HTTP Server installation.</p>
|
|
|
|
</section>
|
|
|
|
<section id="troubleshoot">
|
|
<title>Using server-status to troubleshoot</title>
|
|
|
|
<p>The <code>server-status</code> page may be used as a starting
|
|
place for troubleshooting a situation where your server is consuming
|
|
all available resources (CPU or memory), and you wish to identify
|
|
which requests or clients are causing the problem.</p>
|
|
|
|
<p>First, ensure that you have <directive
|
|
module="core">ExtendedStatus</directive> set on, so that you can see
|
|
the full request and client information for each child or
|
|
thread.</p>
|
|
|
|
<p>Now look in your process list (using <code>top</code>, or similar
|
|
process viewing utility) to identify the specific processes that are
|
|
the main culprits. Order the output of <code>top</code> by CPU
|
|
usage, or memory usage, depending on what problem you're trying to
|
|
address.</p>
|
|
|
|
<p>Reload the <code>server-status</code> page, and look for those process
|
|
ids, and you'll be able to see what request is being served by that
|
|
process, for what client. Requests are transient, so you may need to
|
|
try several times before you catch it in the act, so to speak.</p>
|
|
|
|
<p>This process <em>should</em> give you some idea what client, or
|
|
what type of requests, are primarily responsible for your load
|
|
problems. Often you will identify a particular web application that
|
|
is misbehaving, or a particular client that is attacking your
|
|
site.</p>
|
|
|
|
</section>
|
|
|
|
</modulesynopsis>
|