文档

请求调度策略

更新时间:

Serverless 应用引擎 SAE(Serverless App Engine) 2.0环境中,您可能会发现部分实例没有承接请求流量且缺失日志。SAE 2.0分为微服务场景和Web场景,Web场景根据CPU分配模式的不同,又可以细分为仅在有请求时分配CPU和始终分配CPU模式。其中,仅在有请求时分配CPU的模式会涉及请求调度实例的不同情况。

原理

单实例并发请求数是指每个应用实例能同时处理的请求次数上限。SAE默认值为10。当并发请求数设置为10时,每个实例最多能同时处理10个请求。SAE根据流量自适应调整应用实例,当单个实例的并发请求数达到上限,才会创建新的实例。您可能会遇到以下情况:

  • 当处理11个请求时,实例A的并发请求数达到上限,第11个请求将会由实例B承接。

  • 当两个实例的部分请求处理完成后,实例A、B目前的请求数均下降为9,此时新请求会随机由实例A或B承接。如果实例A、B目前的请求数不同,则新请求优先由并发请求数较多的实例承接。

  • 当请求缩减至10个内,将全部由单个实例承接。根据您已配置的实例数范围,应用实例将缩容至指定的最小值。

您可以在创建Web应用或更新Web应用版本时,设置单实例并发请求数和自动扩缩实例数范围。具体操作,请参见管理应用版本管理

相关影响

计费

在1个实例内并发处理请求可以节省费用。针对Web场景仅在有请求时分配CPU的模式,SAE不会为无请求的实例分配CPU,因此无CPU计费。计费详情,请参见按量计费

日志

无请求的实例,没有请求相关的日志。

常见问题

  1. 为什么设置了2个实例,但是只有1个实例有日志,另外1个实例没有日志?

    该实例当前没有处理实际的请求,因此没有请求相关的日志。同时系统也没有给该实例分配CPU,所以CPU计费为0。

  2. 在代码中创建了进程/线程/协程,为什么它们没有被执行?

    当前实例如果没有正在处理的实际请求,那么他的CPU就会被冻结,子线程中的代码也就无法执行了。

  • 本页导读 (1)
文档反馈