背景信息
函数计算按实例执行时长计费。假设有3个请求需要同时处理,每个请求都需要10秒,根据不同的并发度设置,执行时长会有所不同。
- 如果实例并发度设置为1,每个实例一次只能处理1个请求,那么函数计算需要创建3个实例来处理这3个请求,总执行时长为30秒。
- 如果实例并发度设置为10,每个实例可以同时处理最多10个请求,那么函数计算只需创建1个实例即可处理这3个请求,总执行时长仅为10秒。
说明默认情况下,函数的实例并发度为1,这意味着一个实例只能同时处理一个请求。当您将单实例并发度设置为大于1时,函数计算在进行弹性伸缩时,会在充分利用现有实例的并发度后,才会创建新的实例。
实例并发度设置为不同的值时,请求执行的区别如下图所示:
应用场景
单实例多并发功能适用于函数中存在大量等待下游服务响应的场景。由于等待响应通常不消耗资源,通过在一个实例内并发处理,不仅能够节省成本,还能提高应用的响应能力和吞吐量。
优势
- 节省费用并减少执行时长。
例如,对于偏重 I/O 的函数,可以在一个实例内并发处理,从而减少所需实例数量并降低总执行时长。
- 实现请求之间的状态共享。
多个请求可以共用一个实例内的数据库连接池,从而减少与数据库的连接次数。
- 降低冷启动的概率。
由于多个请求能够在一个实例内处理,新实例的创建次数减少,从而降低了冷启动的发生概率。
使用限制
限制项 | 描述 |
---|---|
单实例并发度取值范围 | 1~200 |
操作步骤
您可以在创建函数时,指定函数的单实例并发度。
也可以在更新函数时设置单实例并发度。
进入目标函数详情页,依次点击配置->运行时->编辑,设置合适的并发度值。