【问题标题】:WSO2 API Manager Throttling test using jmeterWSO2 API Manager 使用 jmeter 进行节流测试
【发布时间】:2017-05-25 17:39:18
【问题描述】:

我们正在尝试使用 jmeter 进行负载测试。以下是场景

Application1 : 2 req/min(节流层)

场景 1: 我们创建了线程数为 10 且加速周期为 1 的 jmeter 脚本,根据节流层,它不应该接受超过 2 个请求/分钟,但超过 2 个请求是正确的回应

场景 2:我们已经测试了相同的 api 相同的应用程序,线程数为 30,加速周期为 60。它按预期工作,我们得到正确的错误响应,说明您已超出限制 p>

任何人都可以帮助我们了解它在场景 1 中失败的原因

【问题讨论】:

  • 您使用的是哪个版本的 API Manager?
  • 我们使用的是 api manager 2.1.0
  • 您是否一直在场景 1 中看到相同的行为?
  • 是的,我总是看到同样的行为

标签: wso2 wso2-am


【解决方案1】:

这种行为的原因是因为 Throttling 是异步执行的,不会阻塞传入的请求。当两个请求之间的时间间隔非常大时,这为限制事件的发生提供了足够的时间,因此限制的准确性更高。

在您的第二个测试中,您使用 30 个线程,加速时间为 60 秒。这意味着在测试的前 60 秒内,每个请求 (60/30) 之间有 2 秒的间隔。在第一个测试中,两个请求之间的间隔是 1/10 = 0.1 秒。因此,在第一个测试中,在很短的时间内发送了许多请求,因此在做出限制决定并通知时,已经通过了比最初允许的更多的请求。但是在第二个测试中,每个请求之间有 2 秒的间隔。因此,在第二个请求通过后,节流引擎会做出节流决定,并在再过 2 秒之前通知网关。因此,当第三个请求到达时,网关知道它应该被限制。

总而言之,当请求之间的时间非常小时,限制计数的准确性可能会更低。大多数实际场景类似于您的第二个测试,其中两个请求之间总是有一个“思考时间”。在这些情况下,准确性很高。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-06
    • 2023-03-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多