gpt4 book ai didi

amazon-web-services - DynamoDB 响应缓慢

转载 作者:行者123 更新时间:2023-12-04 04:29:09 25 4
gpt4 key购买 nike

所以我的问题是 DynamoDB 需要相当长的时间来返回单个对象。我正在使用 node.js 和 AWS docclient。奇怪的是,从数据库中“选择”单个项目需要 100 毫秒到 200 毫秒。
有没有办法让它更快?

示例代码:

var AWS = require("aws-sdk");
var docClient = new AWS.DynamoDB.DocumentClient();
console.time("user get");
var params = {
TableName : 'User',
Key: {
"id": "2f34rf23-4523452-345234"
}
};

docClient.get(params, function(err, data) {
if (err) {
callback(err);
}
else {
console.timeEnd("user get");
}
});

lambda 中这段简单代码的平均时间是 130 毫秒。知道我能做些什么来让它更快吗?用户表只有主分区键“id”和带有主键电子邮件的全局二级索引。当我从控制台尝试此操作时,它需要更多时间。

任何帮助都感激不尽!

最佳答案

我在使用 Lambda@Edge 时遇到了完全相同的问题。来自 DynamoDB 的响应平均需要 130-140 毫秒,而 DynamoDB 延迟图显示了 10-20 毫秒的延迟。

通过禁用 ssl、参数验证和 convertResponseTypes,我设法将响应时间平均缩短到约 30 毫秒:

const docClient = new AWS.DynamoDB.DocumentClient({ 
apiVersion: '2012-08-10',
sslEnabled: false,
paramValidation: false,
convertResponseTypes: false
});

问题的原因很可能是 lambda 本身的 CPU/网络节流。用于查看器请求的 Lambda@Edge 最多可以有 128MB,这是一个非常慢的 lambda。因此禁用额外检查和 SSL 验证使事情变得更快。

如果您只运行常规 Lambda,增加内存应该可以解决问题。

关于amazon-web-services - DynamoDB 响应缓慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41978597/

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