| <?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> |