Node.js Amazon Web服务DynamoDB请求速度慢

Node.js Amazon Web服务DynamoDB请求速度慢,node.js,amazon-web-services,express,amazon-dynamodb,Node.js,Amazon Web Services,Express,Amazon Dynamodb,我目前正在使用该库处理Node.js中的DynamoDB。我一直在做一些测试,了解为什么我的express请求在某些情况下需要1000毫秒以上的时间,并让pin将其指向dynamoose函数。进行扫描或保存时,每个请求大约需要240毫秒。因此,如果我必须在一个函数中执行其中的一些操作,它可能会变长 根据美国焊接学会(AWS)的说法,我的读写能力远远低于规定的水平 另外,我的一张表显示了10-40ms扫描和放置延迟。这似乎不坏,但仍然似乎有点高(可能是完全正常的tho) 关于如何提高所有这些的速

我目前正在使用该库处理Node.js中的DynamoDB。我一直在做一些测试,了解为什么我的express请求在某些情况下需要1000毫秒以上的时间,并让pin将其指向dynamoose函数。进行扫描或保存时,每个请求大约需要240毫秒。因此,如果我必须在一个函数中执行其中的一些操作,它可能会变长

根据美国焊接学会(AWS)的说法,我的读写能力远远低于规定的水平

另外,我的一张表显示了10-40ms扫描和放置延迟。这似乎不坏,但仍然似乎有点高(可能是完全正常的tho)


关于如何提高所有这些的速度以使我的DB请求不需要240毫秒,您有什么想法吗?

默认情况下,节点中未启用keepAlive。启用此功能将加快速度,因为现有套接字将被重用。你介意测试一下这个选项吗?您可以通过使用以下选项实例化DynamoDB客户端来实现这一点:

var dynamo = new AWS.DynamoDB({
  region: "ap-southeast-2",
  httpOptions: {
    agent: new https.Agent({
      rejectUnauthorized: true,
      keepAlive: true
    })
  }
});

扫描将获取表中的所有内容。因此,根据桌子的大小,可能需要一段时间才能把所有东西都搬进来

您在这里看到的扫描延迟是针对服务器上的1个扫描请求的(它不考虑网络或客户端延迟)

要获取表中的所有内容,通常需要执行几个扫描请求(返回1MB IIRC的数据大小有一个上限)


您还需要查看SDK中是否启用了KeePielt(即:您正在重新使用连接或打开新的连接)并考虑AWS区域有多远(如果在与使用的DDB相同的区域中不运行EC2实例上的代码,您将看到网络延迟的惩罚)。.

好的,让我试着解决这个问题。超级困难,因为我使用dynamoose来处理这些请求,所以我必须深入到他们的代码中,找出他们在哪里有代码,并进行更新。如果我弄清楚了在哪里,我会告诉你的。如何在aws sdkOk中添加httpoptions目前我在表中只有一样东西。网络延迟可能是问题所在。我用的是我当地的电脑,它位于科罗拉多州,DynamoDB位于俄勒冈州。所以这可能是个问题。正如我告诉error2007s的,因为我使用的是dynamoose,所以要找到他们在哪里实现keepalive函数会有点麻烦。因此,我必须找到一种简单的方法来编辑节点包,甚至找到代码所在的位置。谢谢你的帮助。