Apache HTTP Server Version 2.5

Apache > HTTP Server > Documentation > Version 2.5 > Modules

# Apache Module mod_status

Description: | Provides information on server activity and performance
Status: | Base
Module Identifier: | status_module
Source File: | mod_status.c

### Summary

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 number of workers serving requests
- The number of idle workers
- The status of each worker, the number of requests that worker has performed and the total number of bytes served by the worker (*)
- A total number of accesses and byte count served (*)
- The time the server was started/restarted and the time it has been running for
- Averages giving the number of requests per second, the number of bytes served per second and the average number of bytes per request (*)
- The current percentage CPU used by each worker and in total by all workers combined (*)
- The current hosts and requests being processed (*)

The lines marked "(*)" are only available if `ExtendedStatus` is `On`. In version 2.3.6, loading mod_status will toggle `ExtendedStatus` On by default.

It should be noted that if `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.

### Topics

- Enabling Status Support
- Automatic Updates
- Machine Readable Status File
- Using server-status to troubleshoot

### Directives

This module provides no directives.

### Bugfix checklist

- httpd changelog
- Known issues
- Report a bug

## Enabling Status Support ¶

To enable status reports only for browsers from the example.com domain add this code to your `httpd.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`

## Automatic Updates ¶

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.

## Machine Readable Status File ¶

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.

## Using server-status to troubleshoot ¶

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.