系统规则从整体维度对应用入口流量进行控制,结合应用的负载、CPU使用率、总体平均RT、入口QPS和并发线程数等几个维度的监控指标,结合自适应的流控策略,让系统的入口流量和系统的负载达到一个平衡,保证系统在最大吞吐量状态下稳定运行。

前提条件

将应用接入AHAS应用防护,具体操作请参见接入应用概述

背景信息

系统保护规则是应用整体维度的,而不是资源维度的,并且仅对入口流量生效。入口流量指的是进入应用的流量,例如Web服务或Dubbo服务端接收的请求。通过自定义埋点接入和通过注解接入的应用,入口流量为EntryType.IN的逻辑被调用时产生的流量。配置系统规则的对象必须是入口流量,且默认接口为Dubbo或HSF才生效,如默认埋点的Dubbo、Servelet等,或者通过修改EntryType.IN来让系统规则对该方法生效,EntryType.IN的详情请参见通过自定义埋点接入通过注解接入

系统规则支持以下的模式:
  • Load(仅对Linux、Unix-like机器生效):当系统Load 1超过阈值且系统当前的并发线程数超过系统容量时才会触发系统保护。
  • CPU使用率:当系统CPU使用率超过阈值(0.0~1.0)即触发系统保护。
  • RT:当单台机器上所有入口流量的平均RT达到阈值即触发系统保护。
  • 线程数:当单台机器上所有入口流量的并发线程数达到阈值即触发系统保护。
  • 入口QPS:当单台机器上所有入口流量的QPS达到阈值即触发系统保护。

对于一个应用来说,每种相同的系统保护规则最多只能存在一条,即一个应用最多配置五条系统保护规则。配置系统规则的原理请参见系统防护

新建系统规则

  1. 登录AHAS 控制台
  2. 在AHAS控制台左上角,选择应用接入的地域
  3. 在控制台左侧导航栏中选择流量防护 > 应用防护
  4. 应用列表页面单击目标应用卡片。
  5. 在左侧导航栏单击规则管理,然后单击系统规则页签。
  6. 系统规则页签右上角单击新建系统保护规则
  7. 新建系统保护规则对话框中,配置规则信息。 新增系统保护规则
    参数 描述 使用场景说明
    CPU使用率 当系统CPU使用率超过阈值即触发系统保护,阈值设置范围为0.0~1.0(代表0%~100%)。 适用于设置基础资源水位的场景,比如需要保证一定的冗余水位。但系统水位不宜过高,需要留部分水位。
    Load 当系统的Load1超过阈值,且系统当前的并发线程数超过系统容量时才会触发系统保护。系统容量由系统的maxQps * minRt计算得出。 适用于设置基础资源水位的场景,比如需要保证一定的冗余水位。但系统水位不宜过高,需要留部分水位。
    线程数 当单台机器上所有入口流量的并发线程数达到阈值即触发系统保护。 适用于设置基础资源水位的场景,比如需要保证一定的冗余水位。但系统水位不宜过高,需要留部分水位。
    入口平均RT 当单台机器上所有入口流量的平均RT达到阈值即触发系统保护,单位是毫秒。 适用于衡量入口请求的场景。
    入口总QPS 当单台机器上所有入口流量的QPS达到阈值即触发系统保护。 适用于衡量入口请求的场景。
  8. 单击新增

管理系统规则

系统规则页签中,您可以启用、禁用、编辑或删除系统规则。

  • 单系统规则启用/禁用:

    系统规则页签中,找到目标应用下对应的系统规则,单击状态栏的启用开关,可快速启用或禁用该规则。

  • 多个系统规则批量启用/禁用:

    系统规则页签中,勾选多个系统规则,单击批量启用批量禁用,可快速启用或禁用多个规则。

  • 编辑规则:

    系统规则页签中,找到目标应用下对应的系统规则,单击操作栏的编辑,可修改该规则的阈值。阈值类型不允许更改。

  • 删除规则:

    系统规则页签中,找到目标资源下对应的系统规则,单击操作栏的删除