sysguard_mem
`sysguard_mem` 指令设置基于内存的阈值,用于根据内存使用情况统计限制流量。
NGINX sysguard module
·
httpserverlocation
语法sysguard_mem {swapratio=percentage | free=value} [action=url];
默认值none
上下文http, server, location
参数1-2
说明
sysguard_mem 指令是 NGINX Sysguard 模块的一部分,该模块用于通过基于特定内存条件的流量控制来更有效地管理服务器资源。此指令可以接受一个或两个参数,用于指定要监控的内存阈值。可接受的参数包括 swapratio,表示允许的 swap 内存使用百分比,以及 free,定义在采取某些操作之前所需的最小可用物理内存量。也可以将某个操作与这些条件关联,使其在超过阈值时触发可配置的响应,例如返回特定的状态码。
在使用 sysguard_mem 时,如果满足指定的内存条件——要么 swap 内存使用百分比超过定义的比率,要么可用内存低于设定的限制——NGINX 会触发指定的操作,从而有效地管理服务器负载。此功能对于在流量高峰或内存密集型操作期间防止服务器过载非常重要。因此,您可以为不同的 location 或 server blocks 配置多个 sysguard_mem 指令,以根据上下文应用定制的资源管理。
此外,指令的行为还可以受其他指令(如 sysguard 和 sysguard_mode)的影响,从而基于组合条件进行复杂的决策过程,增强您的服务器配置在面对资源耗尽时的鲁棒性。
配置示例
location /api {
sysguard on;
sysguard_mem swapratio=20% action=/swaplimit;
sysguard_mem free=100M action=/freelimit;
}⚠
确保您设置的阈值是根据服务器容量可实现的;否则,操作可能会被过于频繁地触发。
⚠
请谨慎指定 action;配置错误可能会导致不必要地向用户返回错误。
⚠
请记住,如果同时指定了两个参数,则每个 sysguard_mem 指令只能关联一个 action。如果需要多个操作,应使用不同的指令。