我目前正在使用安装在微EC2实例上的节点应用程序进行一些测试,该实例对DynamoDB执行一些查询,但我注意到单个的总延迟非常高(10秒)。如果我在我的本地机器上尝试相同的节点应用程序,延迟大约是600毫秒,这也很高但更好。我无法ping通dynamodb.eu-west-1.amazonaws.com,但我的EC2实例(也位于爱尔兰)的延迟时间约为45毫秒。发电机潜伏期不应该几乎相同吗?我想我应该期待至少<100ms的延迟......我已经检查过cloudwatch,它显示每个DynamoDB getItem请求的查询时间为10-20ms。所以我想弄清问题是什么,我正在尝试的脚本非常简单,如下所示。
var test = function () {
var _dyn = new AWS.DynamoDB({ endpoint: new AWS.Endpoint(config.db.host) });
var params = {
Key: {
userId: { S: Date.now().toString() }
},
TableName: 'Users',
ConsistentRead: false
};
var start = Date.now();
console.log('Start Query');
_dyn.getItem(params, function (err, userData) {
console.log(err);
console.log('End Query in ' + (Date.now() - start));
});
}
test();
我的EC2实例上的测试是使用免费套餐进行的,这是否是> 10秒延迟的可能因素?对于测试,我已将Dynamo表的读取和写入容量单位设置为100,以排除与供应相关的问题。