跳到主要内容

Dstat 监控与负载测试 —— Dstat 对比

Dstat 监控与负载测试有重叠,但回答的是不同的问题。

Dstat 监控

  • 观察实时流量与防护有效性。
  • 区分 通过 / 绕过 / 拦截。
  • 关注防护如何响应。

负载测试

  • 衡量负载下的容量与时延。
  • 关注应用性能极限。
  • 通常针对自有预发环境运行。

问题不同,指标也不同

负载测试回答的是:在时延或错误率变得不可接受之前,应用能承载多少请求。其输出是吞吐量、响应时间分位数与错误计数,在客户端侧基于已知的请求组合测得。

Dstat 回答的是:有多少恶意流量到达源站,防护层又清除了多少。其输出是每秒入站请求数与通过 / 绕过 / 拦截的拆分,在流量到达时于目标侧测得。Dstat 不报告时延,负载测试也不报告 WAF 过滤了什么。

在同一次演练中结合使用

先在关闭防护的预发环境上运行负载测试,确定应用的容量上限。此数值是后续一切判断的参照:若源站可承载 2,000 RPS,则实时 Dstat 上任何高于该值的绕过量都意味着防护不足。

随后对受保护目标运行 Dstat,对照该上限解读绕过曲线。当入站流量超过容量而绕过保持在其下方时,防护即在发挥作用。每次配置变更后重复这一组测试,可判断规则是改善了过滤还是仅转移了负载。

结论

用负载测试找容量上限,用 Dstat 验证防护是否真正过滤了恶意流量。

常见问题

Dstat 能取代负载测试吗?

不能。Dstat 衡量的是到达目标的流量及其中被过滤的比例,不衡量响应时间与错误率。容量上限仍需通过负载测试得出。

Dstat 就是压力测试吗?

Dstat 是测量手段,而非流量本身。压力测试产生负载;Dstat 记录到达的流量以及防护的响应。本站的实时页面是观察公开测试目标的 Dstat。

哪一种可以针对生产环境运行?

Dstat 是被动测量,可以观察生产环境。负载测试通常针对预发环境运行,因为它会刻意把应用推向极限。只对自有或已获授权的基础设施进行测试。

相关