Node.js 是什么导致DynamoDB操作的执行时间间歇性过长
我们正在经历间歇性DynamoDB执行时间,持续时间仅超过10秒。这种情况大约每一到三小时发生一次Node.js 是什么导致DynamoDB操作的执行时间间歇性过长,node.js,amazon-web-services,aws-lambda,amazon-dynamodb,aws-sdk,Node.js,Amazon Web Services,Aws Lambda,Amazon Dynamodb,Aws Sdk,我们正在经历间歇性DynamoDB执行时间,持续时间仅超过10秒。这种情况大约每一到三小时发生一次 DynamoDB操作是从Node.js Lambda(getItem或updateItem)调用的 AWS SDK DynamoDB实例实例化在Lambda处理程序之外发生一次 Lambda和DynamoDB位于同一VPC中,并且启用了DynamoDB端点 Lambda由来自另一个DynamoDB表的DynamoDB流触发,该流每秒可能发生多次 表格设置为按请求支付 分区键是唯一的,我们得到了4
- DynamoDB操作是从Node.js Lambda(getItem或updateItem)调用的
- AWS SDK DynamoDB实例实例化在Lambda处理程序之外发生一次
- Lambda和DynamoDB位于同一VPC中,并且启用了DynamoDB端点
- Lambda由来自另一个DynamoDB表的DynamoDB流触发,该流每秒可能发生多次
- 表格设置为按请求支付
- 分区键是唯一的,我们得到了4个lambda的并发性
- 我们已经给了Lambda 2560MB的内存
- 我们已经尝试将流的批处理大小从1设置为10,但它从未阻止间歇性的长执行时间
- 我们已经启用了AWS SDK日志记录,并且可以看到在较长的峰值时间内,DynamoDB调用已经重试了一次——在这些情况下,持续时间始终仅超过10秒
- 我们已经将AWS SDK超时时间从5秒设置为2秒,但仍然可以看到10秒的延迟
- 我们将表上的maxRetries设置为10
Sam你能分享显示重试的日志吗?嘿,Maurice,来自AWS.config.logger的日志读取-[AWS dynamodb 200 1 retries 10.049s]getItem({tableName:xxxxx,Key:{xxxx:{S:xxxx},{xxxx:{S:xxxx})可能问题出在dynamodb上,而不是你的lambda上。你能更新读/写容量单位吗?请记录参数AWS.dynamodb.retryDelayOptions。SDK中设置的默认重试时间是50ms,但听起来很可疑,好像你的客户在10s后重试。@Mickers谢谢你的帮助。我们已将表设置为按请求付费,其中我相信读写能力有任何限制。