gpt4 book ai didi

amazon-web-services - 通过 Lambda 增加的 Kinesis 延迟导致低获取和高延迟

转载 作者:行者123 更新时间:2023-12-04 08:12:37 24 4
gpt4 key购买 nike

我们使用 Kinesis 作为 Lambda 的缓冲区,然后将其插入 Redshift。 Lambda 函数在 S3 中创建一个文件并在 Redshift 中执行 COPY 以插入数据。我们发现来自 Kinesis 的数据延迟非常高,我们担心这会导致超过 24 小时的数据被丢弃。我们目前有 3 个分片在运行,离我们的最大吞吐量还差得很远。

在同一时间段内,我们还看到进入 Kinesis 的数据量有所增加。然而,由于我们只使用了大约三分之一的写入吞吐量,我们不应该受到限制。任何 Lambda 或 Redshift 指标都没有波动。

附件显示了我们的 Kinesis 流中的统计数据。是什么导致了这种情况的发生,我该如何解决?

Kinesis get requests

Kinesis get latency

enter image description here

enter image description here

最佳答案

很可能发生的情况是您的 lambda 函数跟不上进入 Kinesis 的数据速率。 lambda 函数与 Kinesis 事件流的工作方式,每个分片仅附加一个(单核)lambda 函数。所以你只有 3 个功能。

您可以通过查看 Kinesis 上的 iteratorAgeMilliseconds 指标来了解函数是否落后。结合查看 lambda 函数的平均执行持续时间和 lambda 事件源批处理大小,您应该可以很好地了解 lambda 函数每秒实际处理的数据量。 (事件源批量大小)*(每条记录的平均大小)/(lambda 调用的平均持续时间)*(分片数)= 处理的总字节数/秒。您可以使用它来确定您需要多少个 Kinesis 分片来跟上负载。

另外,您可能想要查看“扇出”设置,其中您有一个 lambda 函数从流中读取事件,然后直接调用另一个带有事件的 lambda 函数。这使您远离 lambda 中的分片亲和性。

关于amazon-web-services - 通过 Lambda 增加的 Kinesis 延迟导致低获取和高延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31806381/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com