1 Resposta
- Mais recentes
- Mais votos
- Mais comentários
0
【以下的回答经过翻译处理】 问题)3800毫秒是正常的冷启动时间吗?答)冷启动受运行时和Lambda函数的依赖项影响。正常的冷启动时间实际上取决于Lambda函数正在执行的任务。Lambda函数在初始化持续时间内执行的任务越少,冷启动时间就越短。如果您想要查看Docker容器对冷启动的影响,您可以创建一个Lambda函数,仅打印"hello world",并收集性能基准数据。
问题)在我的新管道中,为什么初始化持续时间没有改进?答)目前不太清楚您的Lambda函数是否仍然经历冷启动。您可以使用CloudWatch Insights查询Lambda函数的日志,并生成有关冷启动的报告。以下是您可以使用的查询示例:
filter @type = “REPORT”
| stats count(@type) as countInvocations,
count(@initDuration) as countColdStarts,
(count(@initDuration)/count(@type))*100 as percentageColdStarts,
max(@initDuration) as maxColdStartTime,
avg(@duration) as averageDuration,
max(@duration) as maxDuration,
min(@duration) as minDuration,
avg(@maxMemoryUsed) as averageMemoryUsed,
max(@memorySize) as memoryAllocated, (avg(@maxMemoryUsed)/max(@memorySize))*100 as percentageMemoryUsed
by bin(1h) as timeFrame
您可以使用这个方法来比较这两个管道。您还可以使用X-Ray来追踪Lambda函数,X-Ray守护程序会记录有关函数调用和执行的详细信息。
问题)您建议采取什么方法来降低/解决成本?有三个方面可以考虑:
- 如果你的Lambda函数仍然受到冷启动的影响,你可以使用Reserved Concurrency来限制函数的并发实例数量。如果我了解您的工作负载,就是同一个 Lambda,只是接收了不同的参数,因此您可以使用预置并发来确保不会创建 200 个函数实例。您需要测试我们不同的最大并发实例数,以找到最能满足您对成本和速度的要求的方法。
- 确保您正在优化静态初始化。
- 使用 AWS Lambda Power Tuning 对函数进行分析,以确保您使用了最经济和/或性能最佳的内存配置。
Conteúdo relevante
- AWS OFICIALAtualizada há um ano
- AWS OFICIALAtualizada há 3 anos