Apache HTTP Server Version 2.4
Description: | Provides information on server activity and performance |
---|---|
Status: | Base |
Module Identifier: | status_module |
Source File: | mod_status.c |
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.
The details given are:
The lines marked "(*)" are only available if
ExtendedStatus
is On
. In version 2.3.6, loading mod_status will
toggle ExtendedStatus
On
by default.
This module provides no directives.
To enable status reports only for browsers from the example.com
domain add this code to your apache2.conf
configuration file
<Location /server-status> SetHandler server-status Require host example.com </Location>
You can now access server statistics by using a Web browser
to access the page
http://your.server.name/server-status
You can get the status page to update itself automatically if
you have a browser that supports "refresh". Access the page
http://your.server.name/server-status?refresh=N
to
refresh the page every N seconds.
A machine-readable version of the status file is available by
accessing the page
http://your.server.name/server-status?auto
. This
is useful when automatically run, see the Perl program
log_server_status
, which you will find in the
/support
directory of your Apache HTTP Server installation.
mod_status
is
loaded into the server, its handler capability is available
in all configuration files, including
per-directory files (e.g.,
.htaccess
). This may have security-related
ramifications for your site.
The server-status
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.
First, ensure that you have ExtendedStatus
set on, so that you can see
the full request and client information for each child or
thread.
Now look in your process list (using top
, or similar
process viewing utility) to identify the specific processes that are
the main culprits. Order the output of top
by CPU
usage, or memory usage, depending on what problem you're trying to
address.
Reload the server-status
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.
This process should 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.