| <?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 worker serving requests</li> |
| |
| <li>The number of idle worker</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> |
| </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> |
| |
| <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> |
| |
| </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> |
| |