Amazon Web服务DynamoDB请求缓慢

我目前正在使用库dynamoose来处理Node.js中的DynamoDB。 我一直在做一些testing,说明为什么我的快速请求在某些情况下需要超过1000毫秒的时间,并将其指向dynamicfunction。 进行扫描或保存时,每个请求需要约240ms的时间。 所以如果我不得不在一个function上做一些function,它可能会变长。

根据AWS,我的FAR低于我configuration的读写容量。 读写容量

另外我的一个表格显示10-40毫秒的扫描和延迟。 这似乎并不坏,但仍然似乎稍高(可能是完全正常的寿)。

放置和扫描延迟

任何想法如何提高所有这一切的速度,所以我的数据库请求不需要240ms?

扫描获取表中的所有内容。 所以根据桌子的大小,可能需要一段时间才能带来一切。

您在此处看到的扫描延迟是针对服务器上的一个扫描请求(它不考虑networking或客户端延迟)。

要抓取表中的所有内容,您通常会执行多个扫描请求(数据大小的上限是1MB IIRC)

您还需要查看是否在您使用的SDK中启用了Keepalive(即:是否重新使用连接或打开新连接),并考虑距离AWS区域有多远(如果您不运行在你使用的DDB所在地区的EC2实例上的代码将会在networking延迟上看到一个代价)。

默认情况下,节点中未启用keepAlive。 启用这个应该会加快速度,因为现有的套接字将被重用。 你介意testing这个选项吗? 您可以通过使用以下选项实例化DynamoDB客户端来完成此操作:

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