内存和计算能力对 AWS Lambda 成本产生了哪些影响?

1 分钟阅读
0

我想了解内存和计算能力对 AWS Lambda 成本产生了哪些影响。

概述

Lambda 开发人员可以使用内存来控制函数的性能。分配给 Lambda 函数的内存量在 128 MB 到 10,240 MB 之间。Lambda 控制台将新函数默认为 128 MB,许多开发人员为函数选择 128 MB。

但是,最好是仅为简单的 Lambda 函数选择 128 MB。例如,将事件转换和路由到其他 AWS 服务的函数。如果函数执行下列任何操作,则应分配更大的内存:

  • 导入库。
  • 导入 Lambda 层。
  • 与从 Amazon Simple Storage Service(Amazon S3)加载的数据进行交互。
  • 与从 Amazon Elastic File System(Amazon EFS)加载的数据进行交互。

解决方法

Lambda 函数定价

Lambda 费用以您函数的请求数量和代码运行所需的持续时间为基础。Lambda 每次为响应事件通知而调用时都会计入一个请求。例如,来自 Amazon Simple Notification Service(SNS)或 Amazon EventBridge。此外,每次启动 Lambda 响应调用时都会计入一个请求。例如,来自 Amazon API Gateway,或使用 AWS SDK,包括来自 Lambda 控制台的测试调用。

持续时间从您的代码开始运行到返回或停止的时间计算,四舍五入到最接近的 1 毫秒。有关详细信息,请参阅 AWS Lambda 定价。价格取决于您分配给函数的内存。内存量还决定了函数可用的虚拟 CPU 量。添加更多内存会按比例增加 CPU 量,从而增加可用的计算能力。如果函数是 CPU 绑定、网络绑定或内存绑定的,更改内存设置可以提高性能。内存的增加会使函数可用的 CPU 相应增加。

内存能力对 Lambda 成本的影响

Lambda 服务按函数消耗的总千兆字节秒量收费。如果总持续时间保持不变,内存的增加会影响总体成本。千兆字节秒是总内存(以千兆字节为单位)和持续时间(以秒为单位)的乘积。然而,如果增加可用内存,持续时间会减少。因此,总成本增加可以忽略不计,甚至有所下降。

例如,计算素数的函数的 1000 次调用在不同内存级别具有以下平均持续时间:

内存持续时间成本
128 MB11.722 秒0.024628 美元
512 MB6.678 秒0.028035 美元
1024 MB3.194 秒0.026830 美元
1536 MB1.465 秒0.02463 美元

在此示例中,在 128 MB 时,平均需要 11.722 秒才能完成函数,1000 次调用的成本为 0.024628 美元。内存增加到 1536 MB 时,平均持续时间降至 1.465 秒,因此成本为 0.024638 美元。对于千分之一美分的成本差异,该函数的性能提高了 10 倍。

如果使用的内存接近配置的最大值,请使用 Amazon CloudWatch 监控函数并设置警报。这有助于识别内存绑定函数。对于 CPU 绑定和 IO 绑定函数,请监控持续时间以提供更多见解。在这些情况下,增加内存有助于解决计算或网络瓶颈。有关详细信息,请参阅监控和可观测性


AWS 官方
AWS 官方已更新 2 年前