【发布时间】:2020-03-26 13:34:17
【问题描述】:
我有一个基本的 NodeJS Web 应用程序,它只扫描大约 10 个项目的 DynamoDB 表。当我在我的机器上本地运行应用程序时,操作时间不到 1 秒。
但是,当我在 EC2 实例上部署应用程序时,相同的操作需要将近 5 秒。 EC2 实例(t2.micro) 和 DynamoDB 表位于同一区域。我还为 DynamoDB 启用了 VPC Endpoint Gateway 服务,但延迟保持不变。
这是测试性能的 curl 请求:
curl -X POST http://localhost:9000/login -H 'Content-Type: application/json' -d '{ "email": "xyz@gmail.com", "password": "admin", "type": "talent" }' -s -o /dev/null -w "%{time_starttransfer}\n" 0.394470
curl -X POST http://EC2_IP_ADDRESS:9000/login -H 'Content-Type: application/json' -d '{ "email": "xyz@gmail.com", "password": "admin", "type": "talent" }' -s -o /dev/null -w "%{time_starttransfer}\n" 5.207561
请帮助我了解导致这些延迟的原因以及如何在从 EC2 实例查询 DynamoDB 时实现低延迟。
【问题讨论】:
-
更新:之前我在 Docker 容器中运行应用程序。我在裸机 Ubuntu AMI 上运行应用程序,延迟立即下降。因此,问题在于在容器中运行应用程序时。我尝试将基础 Docker 映像从 8 更改为 10,但问题仍然存在。请帮助我了解问题可能出在哪里。
标签: node.js amazon-web-services amazon-dynamodb latency