当前位置: 首页 > 知识库问答 >
问题:

AWS Lambda吞吐量

赖星驰
2023-03-14

来自AWS Lambda常见问题解答:

Q: 我一次可以执行的AWS Lambda函数的数量是否有限制?

不需要。AWS Lambda旨在并行运行多个函数实例。然而,AWS Lambda的默认安全限制为每个区域每个帐户100次并发执行。如果您希望提交请求以增加100次并发执行的限制,您可以访问我们的支持中心,单击“打开新案例”,然后提交服务限制增加请求。

Q: 如果我的帐户超过并发执行的默认限制,会发生什么情况?

超过限制时,同步调用的AWS Lambda函数将返回限制错误(429错误代码)。异步调用的Lambda函数可以在大约15-30分钟内吸收合理的流量突发,之后传入的事件将被拒绝,因为受到限制。如果调用Lambda函数以响应Amazon S3事件,AWS Lambda拒绝的事件可能会被S3保留并重试24小时。将重试来自Amazon Kinesis流和Amazon DynamoDB流的事件,直到Lambda函数成功或数据过期。Amazon Kinesis和Amazon DynamoDB流将数据保留24小时。

什么构成上述“合理爆发”?有人有具体的号码吗?

共有3个答案

罗鸿畴
2023-03-14

Lambda确实维护一种内部排队机制,当您发送的请求超过您的限制(默认为100)时,它将限制您的Lambda调用,等待前100个Lambda函数完成并返回到可用列表,然后调用它们以获得队列中的下一个请求。

因此,没有定义合理爆发的值。这取决于每个lambda完成工作的速度。如果您有1000个以上的请求/秒,并且每个lambda所需时间少于10秒,则它可以很好地处理这些请求,但如果每个lambda执行所需时间超过120秒,则它可能会限制一段时间,但当其队列填满时,它将开始拒绝新请求。

黄昊
2023-03-14

AWS中的任何形式的爆发都不应该真正依赖于您的生产使用,这与CPU点数等有可量化分配和充电率的事情不同。

从本质上讲,这就像蹦床边缘的衬垫,如果你碰巧摔倒,它会帮助你,但你仍然不会只是为了好玩而潜水:)

我认为,如果有可用的资源,那么AWS将允许您使用它,但不要依赖它。

我的建议是为您的lambda函数选择更适合您的工作负载的更高资源分配,或者将您的工作负载分解为多个lambda的更小的块,或者考虑将您的工作负载移动到EC2。

年光明
2023-03-14

没有具体的硬数字,但从日常实践来看,我们已经设法在一个时间点上有1000多个λ调用。

我们有一个通过Kinesis Streams触发的调用者lambda,调用者lambda从流中获取一批10条记录,并为每条记录调用一条工作lambda。根据您将记录放入Kinesis的速度,它将触发大量工作lambda:

只要我们继续推动事件进入运动状态,它可以在任何时候触发约5000次(并维持一段时间)。

同样的lambda也可以通过API网关调用。如果API网关上没有设置实际的速率限制,我认为它也可以处理相同的性能。lambda本身是一样的。

请注意,我们正在调用工人,调度程序函数是由Kinesis触发的函数。

 类似资料:
  • 在大数据存储中,IOPS和吞吐量之间的关键区别是什么

  • 我正在对ElasticSearch进行基准测试,以实现非常高的索引吞吐量。 我目前的目标是能够在几个小时内索引30亿(3,000,000,000)文档。为此,我目前有3台windows服务器机器,每台16GB内存和8个处理器。插入的文档有一个非常简单的映射,只包含少数数字非分析字段(被禁用)。 使用这个相对适中的钻机,我能够达到每秒大约120,000个索引请求(使用大桌子监控),我相信吞吐量可以进

  • 我有一个类女巫负责向客户端发送数据,所有其他类在需要发送数据时都使用这个。让我们称之为“数据ender.class”。 现在客户端要求我们将吞吐量控制在每秒最多50次调用。 我需要在这个类上创建一个algoritm(如果可能的话),以保持当前秒的调用次数,如果它达到50的最大值,保持进程要么睡眠或某事,并继续而不丢失数据。也许我必须实现一个队列或比简单的睡眠更好的东西。我需要建议或遵循的方向。 为

  • 无论从什么角度来看,它都不是。 假设我有两个消费者,它们以每秒“10”条消息的速度从给定主题中消耗数据。现在,不管它们是从单个分区还是从两个不同的分区进行消耗;我的吞吐量将保持不变,每秒20条消息。 我觉得我一定漏了一些内部工作的细节,你能帮我解释一下kafka分区(多个)是如何帮助提高固定用户数量的吞吐量的,而不是单个kafka分区。

  • 问题内容: 读了O’Reilly的书,因为我了解了这一计算原理。 当你仅从结构中获取值时,请使用通配符。 仅将值放入结构时,请使用通配符。 当你都想从一个结构中获取和放置一个结构时,请不要使用通配符。 例外情况是: 除了值null(属于每个引用类型)之外,你不能将任何东西放入用通配符声明的类型中。 你不能从用通配符声明的类型中获取任何东西,除了type的值是每个引用类型的超类型。 谁能帮助我深入探

  • 我一直在使用SpringIntegration调用RESTAPI,但是SpringIntegration默认附带的http客户端不支持连接池或可重用性,因此我定制了使用PoolighttpClientConnectionManager 但是现在Spring集成停止在我的类路径中拾取JKS文件,所以我构建了自己的SSL上下文,但是构建这个SSL上下文导致了性能的显著下降 对于100个并发线程, 使用