全部产品
Search
文档中心

函数计算:实例类型及使用模式

更新时间:Sep 05, 2024

函数计算的弹性实例和GPU实例均支持按量模式和预留模式。按量模式根据请求时长计费,可以结合并发度设置提高实例的资源利用率。预留模式则是从实例启动完成开始计费,到实例释放为止,可用于解决冷启动问题。本文为您介绍两类实例的实例模式、计费方式及实例规格。

实例类型

  • 弹性实例:函数计算的基本实例。适用于突发流量和计算密集等各种场景。

  • GPU实例:提供Ampere以及Turing架构的GPU实例。主要适用于音视频、AI人工智能和图像处理等场景。在不同的场景中,将不同的业务负载下沉至GPU硬件加速,从而提升业务处理效率。

    不同场景下使用GPU实例的最佳实践,请参见以下文档。

    重要
    • GPU实例仅支持通过容器镜像方式部署。

    • 使用GPU实例过程中,为了确保您的业务正常进行,请加入钉钉用户群(钉钉群号:64970014484),并提供以下信息。

      • 组织名称,例如您所在的公司名称。

      • 您的阿里云账号ID。

      • 您使用GPU实例的地域,例如华南1(深圳)。

      • 联系方式,例如您的手机号、邮箱或钉钉账号等。

实例模式

弹性实例和GPU实例均支持两种实例模式:按量模式和预留模式。两种实例模式说明如下。

按量模式

基本概念

按量模式是指函数实例的分配和释放完全由函数计算系统负责。函数计算会根据函数的调用量自动进行实例扩缩容,在调用增加时创建实例,在请求减少后销毁实例。整个过程中,通过请求自动触发实例创建。如果实例在一段时间内(一般为3~5分钟)不处理请求,会自动销毁。首次发起调用时,需要等待实例冷启动。

您的阿里云账号(主账号)在单个地域内默认的按量实例上限数为300。如果您需要提高该限制,请加入钉钉用户群(钉钉群号64970014484)申请。

计费方式

在按量模式下,函数执行时长的计量从请求执行函数开始,到请求执行完毕结束。按量模式下,同一个实例同一时间可以执行一个请求,也可以并发执行多个请求。更多信息,请参见设置实例并发度

在没有函数调用请求时不分配实例,所以不会产生费用。只有发生函数调用时才会产生费用。关于具体的产品定价和计费,请参见计费概述

说明

如果您希望提高实例资源利用率,建议根据业务对资源的诉求,配置您的实例为单实例多并发。在这种方案下,当多个任务同时在一个实例上执行时,CPU或者内存将被抢占式共享,有效提高资源利用率。

单实例单并发执行时长

按量模式下,一个实例执行一个请求时,执行时长的计量是从请求到达实例开始,到请求执行完毕为止。

image

单实例多并发执行时长

按量模式下,一个实例并发执行多个请求时,执行时长的计量是从第一个请求到达实例开始,到最后一个请求执行完毕为止。并发执行请求时,可以复用资源节省费用。

image

预留模式

基本概念

预留模式是将函数实例的分配和释放交由您管理,当配置预留函数实例后,预留的函数实例将会常驻,直到您主动将其释放。函数计算会优先将函数调用请求调度至预留的函数实例,当函数请求的并发超过预留的函数实例处理能力时,超出部分的请求被转发至按量模式的实例。关于删除预留模式的实例,请参见配置弹性伸缩规则

说明

如果您希望解决冷启动问题,预留模式是最佳方案。建议您根据业务资源预算选择固定数量预留、根据波峰波谷特性选择指定时间段预留或者按照水位阈值选择自动伸缩方案。预留后,实例的平均冷启动时延将明显降低。

闲置模式

弹性实例

根据是否被分配vCPU资源,弹性实例可以分为活跃状态和闲置状态。默认情况下,闲置模式功能处于打开状态。

  • 活跃状态实例

    活跃状态实例是正在处理请求的实例,或者未启用闲置模式的实例。预留模式实例在未启用闲置模式时,即使未收到请求,函数计算也会为其分配vCPU资源,确保正常运行后台任务。

  • 闲置状态实例

    预留模式实例启用闲置模式后,在没有请求时会被函数计算冻结其vCPU资源,使其进入闲置状态。闲置状态下不产生vCPU费用,这将为您节省大量的成本。当实例配置了PreFreeze回调程序时,会在回调结束后立即进入闲置状态,否则会在请求结束后立即进入闲置状态。关于实例状态的更多信息,请参见函数实例生命周期

您可以根据业务情况选择是否启用闲置模式。

  • 使用成本

    如果您需要预留模式来消除冷启动,又担心预留成本过高,建议启用闲置模式。您可以仅为闲置状态的预留实例支付内存、磁盘费用,同时满足无冷启动的响应调用需求。

  • 后台任务

    如果您的函数需要运行后台任务,建议关闭闲置模式。例如:

    • 使用依赖于内置调度或后台功能的应用框架,或依赖的中间件需要定期汇报心跳。

    • 使用Go语言的Goroutine轻量级线程、Node.js语言的async函数或Java语言的异步线程执行异步操作。

GPU实例

根据是否被分配GPU资源,GPU实例可以分为活跃状态和闲置状态。默认情况下,GPU实例的闲置模式功能处于打开状态。

  • 活跃状态实例

    活跃状态实例是正在处理请求的实例,或者未启用闲置模式的实例。开启闲置模式后,当预留的实例没有请求时,函数计算会将实例的GPU冻结,使其进入闲置状态。

  • 闲置状态实例

    在预留模式中,启用了闲置模式且当前未处理任何请求的实例为闲置状态实例。

计费方式

  • 活跃状态实例

    预留模式的实例的计费从实例成功创建后开始,一直到您主动将其释放为止。由于预留实例由您自己负责申请和释放,所以即使预留的函数实例未执行任何请求,只要没有释放函数实例,您都需要为预留的函数实例按照活跃状态的价格付费。

    image
  • 闲置状态实例

    开启闲置模式后,申请的预留实例在未处理任何请求时将转为闲置状态,闲置状态实例的费用远远小于活跃状态实例,费用比例可参见各资源使用量的CU转换系数

实例规格

  • 弹性实例

    弹性实例包含以下实例规格,您可以根据业务需求选择不同配置的实例。

    vCPU(核)

    内存规格(MB)

    代码包大小上限(GB)

    函数执行时长上限(s)

    磁盘大小上限(GB)

    带宽能力上限(Gbps)

    0.05~16

    取值说明:必须为0.05的倍数。

    128~32768

    取值说明:必须为64的倍数。

    10

    86400

    10

    取值说明:

    • 512 MB,默认值。

    • 10 GB。

    5

    说明

    vCPU大小(单位为核)与内存大小(单位为GB)的比例必须设置在1∶1到1∶4之间。

  • GPU实例

    GPU实例包含以下实例规格,您可以根据业务需求选择不同配置的实例。

    说明
    • fc.gpu.tesla.1实例规格的性能与NVIDIA T4性能基本一致。

    • fc.gpu.ampere.1实例规格的性能与NVIDIA A10性能基本一致。

    实例规格

    整卡显存(GB)

    整卡算力(TFLOPS)

    可选切分规格

    是否支持按量模式

    是否支持普通预留模式

    是否支持闲置预留模式

    FP16算力

    FP32算力

    vGPU显存(MB)

    vGPU算力(卡)

    vCPU(核)

    内存规格(MB)

    fc.gpu.tesla.1

    16

    65

    8

    1024~16384(对应1 GB~16 GB)

    取值说明:必须为1024 MB的倍数。

    取值为vGPU显存(GB)/16。例如,配置vGPU显存为5 GB,则vGPU最高可得5/16张卡算力。

    说明:由函数计算系统自动分配,无需手动配置。

    取值为0.05~(vGPU显存(GB)/2)。

    取值说明:必须为0.05的倍数。具体信息,请参见GPU规格配置表

    取值为128~(显存(GB)*2048)。

    取值说明:必须为64的倍数。具体信息,请参见GPU规格配置表

    Y

    Y

    Y

    fc.gpu.ampere.1

    24

    125

    30

    1024~24576(对应1 GB~24 GB)

    取值说明:必须为1024 MB的倍数。

    取值为vGPU显存(GB)/24。例如,配置vGPU显存为5 GB,则vGPU最高可得5/24张卡算力。

    说明:由函数计算系统自动分配,无需手动配置。

    取值为0.05~(vGPU显存(GB)/3)。

    取值说明:必须为0.05的倍数。具体信息,请参见GPU规格配置表

    取值为128~((显存(GB)*4096)/3)。

    取值说明:必须为64的倍数。具体信息,请参见GPU规格配置表

    Y

    Y

    Y

    fc.gpu.ada.1

    48

    119

    60

    49152(对应48 GB)

    取值说明:仅支持48 GB显存规格。

    默认分配整卡算力。

    说明:由函数计算系统自动分配,无需手动配置。

    取值为8。

    取值说明:仅支持8核vCPU规格。

    取值为65536。

    取值说明:仅支持64 GB内存规格。

    N

    Y

    Y

  • 函数计算GPU实例同时支持以下资源规格。

    镜像大小(GB)

    函数执行时长上限(s)

    磁盘大小上限(GB)

    带宽能力上限(Gbps)

    ACR企业版(标准版):15

    ACR企业版(高级版):15

    ACR企业版(基础版):15

    ACR个人版(免费):15

    86400

    10

    5

    说明
    • 实例规格设置为g1等同于设置为fc.gpu.tesla.1。

    • 目前支持Tesla系列GPU实例的地域包括华东1(杭州)、华东2(上海)、华北2(北京)、华北3(张家口)、华南1(深圳)、日本(东京)、美国(弗吉尼亚)和新加坡。

    • 目前支持Ampere系列GPU实例的地域包括华东1(杭州)、华东2(上海)、日本(东京)和新加坡。

    • 目前支持Ada系列GPU实例的地域包括华北2(北京)、华东1(杭州)、华东2(上海)和华南1(深圳)。

GPU规格配置表

展开查看fc.gpu.tesla.1实例规格配置表。

vGPU显存(MB)

vCPU(核)

内存规格上限(GB)

内存规格(MB)

1024

0.05~0.5

2

128~2048

2048

0.05~1

4

128~4096

3072

0.05~1.5

6

128~6144

4096

0.05~2

8

128~8192

5120

0.05~2.5

10

128~10240

6144

0.05~3

12

128~12288

7168

0.05~3.5

14

128~14336

8192

0.05~4

16

128~16384

9216

0.05~4.5

18

128~18432

10240

0.05~5

20

128~20480

11264

0.05~5.5

22

128~22528

12288

0.05~6

24

128~24576

13312

0.05~6.5

26

128~26624

14336

0.05~7

28

128~28672

15360

0.05~7.5

30

128~30720

16384

0.05~8

32

128~32768

展开查看fc.gpu.ampere.1实例规格配置表。

vGPU显存(MB)

vCPU(核)

内存规格上限(GB)

内存规格(MB)

1024

0.05~0.3

1.3125

128~1344

2048

0.05~0.65

2.625

128~2688

3072

0.05~1

4

128~4096

4096

0.05~1.3

5.3125

128~5440

5120

0.05~1.65

6.625

128~6784

6144

0.05~2

8

128~8192

7168

0.05~2.3

9.3125

128~9536

8192

0.05~2.65

10.625

128~10880

9216

0.05~3

12

128~12288

10240

0.05~3.3

13.3125

128~13632

11264

0.05~3.65

14.625

128~14976

12288

0.05~4

16

128~16384

13312

0.05~4.3

17.3125

128~17728

14336

0.05~4.65

18.625

128~19072

15360

0.05~5

20

128~20480

16384

0.05~5.3

21.3125

128~21824

17408

0.05~5.65

22.625

128~23168

18432

0.05~6

24

128~24576

19456

0.05~6.3

25.3125

128~25920

20480

0.05~6.65

26.625

128~27264

21504

0.05~7

28

128~28672

22528

0.05~7.3

29.3125

128~30016

23552

0.05~7.65

30.625

128~31360

24576

0.05~8

32

128~32768

相关文档

  • 通过配置弹性伸缩规则时可以开启闲置模式,具体操作请参见配置弹性伸缩规则

  • 关于函数计算的计费方式以及计费项等更多信息,请参见计费概述

  • 使用API创建函数时可以通过instanceType参数指定实例类型,请参见CreateFunction - 创建函数

  • 关于如何通过控制台指定期望的实例类型和实例规格的具体操作,请参见管理函数