node.js - 是什么导致 DynamoDB 操作的间歇性长执行时间
问题描述
我们遇到了间歇性的 DynamoDB 执行时间,持续时间仅超过 10 秒。这大约每隔一小时或三小时发生一次。
- 从 Node.js Lambda(getItem 或 updateItem)调用 DynamoDB 操作
- AWS 开发工具包 DynamoDB 实例实例化在 Lambda 处理程序之外发生一次
- Lambda 和 DynamoDB 位于启用了 DynamoDB 终端节点的同一 VPC 中
- Lambda 由另一个 DynamoDB 表中的 DynamoDB 流触发,每秒可能发生多次
- 表设置为 PAY_PER_REQUEST
- 分区键是唯一的,我们得到了 4 个 Lambda 的并发
- 我们给了 Lambda 2560MB 内存
- 我们尝试将流的 BATCH_SIZE 从 1 设置为 10,但它永远不会阻止间歇性长执行时间
- 我们启用了 AWS 开发工具包日志记录,并且可以看到 DynamoDB 调用已重试一次的长峰值时间 - 这些情况下的持续时间始终超过 10 秒
- 我们已将 AWS 开发工具包超时时间从 5 秒设置为 2 秒,但仍然看到 10 秒延迟
- 我们将桌子上的 maxRetries 设置为 10
很难弄清楚长峰值持续 10 秒的原因。如果有人有任何其他想法可以尝试或提供建议,将不胜感激。我们还与 DynamoDB、Lambda 和网络 AWS 支持部门保持联系,但到目前为止他们还没有弄清楚发生了什么。
非常感谢,
山姆
解决方案
推荐阅读
- json - 使用“JSON”列的 Laravel 5 关系
- javascript - 使用媒体查询的 css 图像交换移动与桌面
- python - 请求 Maya Python 协助:根据文本字段内容连接属性
- apache-flink - 缓冲池在 POJO 类型上被破坏
- r - 在 ggplot2 中使用 scale_color_manual 时顺序错误
- python - (sqlite3.OperationalError) 无法从使用 Chatterbot 的事务中更改为 wal 模式
- mysql - 每个表上都有租户 ID 的多租户数据库
- javascript - 组件内的组件 - VueJS
- kubernetes - Linkerd 以意想不到的方式对 gRPC 服务进行负载均衡
- mysql - CREATE FUNCTION 在本地工作,在服务器上失败 - 相同版本的 MySQL