sysguard_rt

用于监控和控制请求处理时间的 `sysguard_rt` 指令,会在响应时间超过阈值时触发相应操作。

语法sysguard_rt rt=number period=time [method=string] [action=URI];
默认值none
上下文http, server, location
参数1-4

说明

NGINX sysguard 模块中的 sysguard_rt 指令旨在通过监控请求的响应时间来帮助管理 Web 应用的性能。通过指定一个或多个参数,可以设置阈值;当阈值被突破时,会触发预定义的操作。该指令最多接受四个参数:rt(响应时间阈值)、period(用于计算平均响应时间的时间周期)、method(用于计算平均值的统计方法)以及可选的 action,用于指定在超过阈值时的处理方式。

参数 rt 指定允许的最大响应时间,period 定义这些测量的频率(例如每 5 秒)。参数 method 允许选择用于计算平均响应时间的算法,例如 AMM(平均移动方法)和 WMA(加权移动平均)。action 通常可以指向处理超载流量的位置,例如重定向到错误页面或限制后续请求。当平均响应时间超过设定的阈值时,将触发指定的操作,从而使管理员能够采取防止过载的措施。

该指令通过基于服务器负载指标有效地调节请求处理,为 Web 服务器性能提供了重要的动态控制,尤其适用于高流量环境。

配置示例

server {
    sysguard on;
    sysguard_mode or;
    sysguard_rt rt=2.0 period=10s method=WMA:10 action=/slowrequest;

    location /slowrequest {
        return 503;
    }
}

确保指定的 period 适合您的应用负载;过短可能导致频繁的状态变更。

确保 action URI 已正确配置以处理负载控制,因为配置错误可能导致用户收到意外响应。

使用过于激进的阈值可能导致大量 503 响应,影响用户体验。请谨慎校准 rt 限制。

← 返回所有指令