GAE:排队率与max_concurrent_requests的关系
GAE: relationship between queue rate and max_concurrent_requests
我正在阅读有关 GAE task queues 的文档,但我不清楚 rate
和 max_concurrent_requests
之间的关系(如果有的话)。 rate
是否指的是单个请求,例如rate=20/s 和 max_concurrent_requests=10 实际上意味着总共最多 200 requests/s?
有3个参数:
bucket size
~最大连发率
rate
~正常处理率
max concurrent requests
~ 额外的并发限制
当任务开始执行时,它会查看存储桶以检查是否有空闲的令牌或插槽。
- 如果是,则令牌数量减一,如果已执行的令牌少于
max concurrent requests
,则任务开始执行。
- 如果没有,任务将不得不等待新的token/slot以
rate
的速度到达。
如果你有一个大桶,它可能会在流量低时填满,例如。桶大小为 20 并且突然出现需求高峰,您可以启动 20 个任务,因为它们都可以获得令牌。然后桶是空的,任务将以速度处理。
Max concurrent requests
可以额外限制突发速率,因为长 运行 任务会减慢整个处理速度。如果没有 max concurrent requests
,只有 bucket size
和 rate
决定处理速度,而不是任务的持续时间。
我正在阅读有关 GAE task queues 的文档,但我不清楚 rate
和 max_concurrent_requests
之间的关系(如果有的话)。 rate
是否指的是单个请求,例如rate=20/s 和 max_concurrent_requests=10 实际上意味着总共最多 200 requests/s?
有3个参数:
bucket size
~最大连发率rate
~正常处理率max concurrent requests
~ 额外的并发限制
当任务开始执行时,它会查看存储桶以检查是否有空闲的令牌或插槽。
- 如果是,则令牌数量减一,如果已执行的令牌少于
max concurrent requests
,则任务开始执行。 - 如果没有,任务将不得不等待新的token/slot以
rate
的速度到达。
如果你有一个大桶,它可能会在流量低时填满,例如。桶大小为 20 并且突然出现需求高峰,您可以启动 20 个任务,因为它们都可以获得令牌。然后桶是空的,任务将以速度处理。
Max concurrent requests
可以额外限制突发速率,因为长 运行 任务会减慢整个处理速度。如果没有 max concurrent requests
,只有 bucket size
和 rate
决定处理速度,而不是任务的持续时间。