Apache 模块 mod_status

Description:提供有关服务器活动和性能的信息
Status:Base
Module Identifier:status_module
Source File:mod_status.c

Summary

状态模块允许服务器 Management 员找出其服务器的性能。将显示一个 HTML 页面,以易于阅读的形式提供当前服务器的统计信息。如果需要,可以使该页面自动刷新(使用兼容的浏览器)。另一页提供了当前服务器状态的简单机器可读列表。

给出的详细信息是:

  • 服务请求的 Worker 数

  • 空闲 Worker 数

  • 每个工作程序的状态,该工作程序已执行的请求数以及该工作程序所服务的字节总数(*)

  • 服务的访问总数和字节数(*)

  • 服务器启动/重新启动的时间及其已运行的时间

  • 给出每秒请求数,每秒服务字节数和每个请求的平均字节数(*)的平均值

  • 每个工作人员当前使用的 CPU 百分比,所有工作人员总计使用的 CPU 总数(*)

  • 当前正在处理的主机和请求(*)

标记为“(*)”的行仅在ExtendedStatusOn时可用。在版本 2.3.6 中,默认情况下,加载 mod_status 将切换ExtendedStatus开启。

启用状态支持

要仅对 example.com 域中的浏览器启用状态报告,请将此代码添加到您的httpd.conf配置文件中

<Location "/server-status">
    SetHandler server-status
    Require host example.com
</Location>

您现在可以通过使用 Web 浏览器访问页面http://your.server.name/server-status来访问服务器统计信息。

Automatic Updates

如果您的浏览器支持“刷新”,则可以获取状态页以自动更新自身。每 N 秒访问页面http://your.server.name/server-status?refresh=N以刷新页面。

机器可读状态文件

通过访问页面http://your.server.name/server-status?auto可获得状态文件的机器可读版本。自动运行时很有用,请参阅 Perl 程序log_server_status,您可以在 Apache HTTP Server 安装目录的/support目录中找到该程序。

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.

使用服务器状态进行故障排除

server-status页可以用作解决服务器消耗所有可用资源(CPU 或内存)的情况的开始位置,并且您希望确定是哪些请求或 Client 端引起了问题。

首先,请确保已启用ExtendedStatus,以便可以看到每个子线程或线程的完整请求和 Client 端信息。

现在,在您的进程列表中查找(使用top或类似的进程查看 Util),以找出是主要罪魁祸首的特定进程。根据您要解决的问题,按 CPU 使用率或内存使用量对top的输出进行排序。

重新加载server-status页面,并查找那些进程 ID,您将能够看到该进程为哪个 Client 端提供服务的请求。请求是暂时的,因此可以说,您可能需要尝试几次才能将其发现。

这个过程应该让您知道什么 Client 端或哪种类型的请求主要负责您的负载问题。通常,您会发现行为异常的特定 Web 应用程序或攻击您的站点的特定 Client 端。