mgt*_*emp 1 ruby postgresql performance sinatra amazon-web-services
我刚刚在亚马逊的 AWS 上设置了一个 db.t2.micro 实例。我正在使用 sinatra 加载本地主机网页。我正在使用 Active Record 进行大约 30~ 次查询,加载需要 92 秒。它非常缓慢。我尝试执行此处列出的自定义参数:http : //docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_BestPractices.html#CHAP_BestPractices.PostgreSQL
这无助于加快速度。我不确定如何加速这个实例。这是我第一次托管数据库。任何帮助,将不胜感激。
当我运行我的 sinatra 应用程序时,它在本地(本地主机)托管。这是 30~ 个查询需要 92 秒才能加载的地方。当我在 Postgres 中运行 select * 语句时,它们只需要几秒钟。
问题在于您和亚马逊数据中心之间的延迟。
比如你在纽约,你的RDS实例在亚马逊西海岸的数据中心,那么你和数据中心之间的延迟大约是80-100ms。这意味着当您的本地应用程序向数据库发送查询时,大约需要 100 毫秒才能让数据库收到查询。要返回答案,它又需要额外的 100 毫秒。
也就是说:假设往返需要 300 毫秒,并且您有大约 30 个查询,那么您的应用程序会损失大约 10 秒什么都不做——只是等待数据通过线路发送。还有其他因素可能会进一步减慢速度:大数据包或丢失数据包(服务器必须再次询问)、互联网连接不良、无线连接、您与数据库之间的距离比我的示例更长。
因此,数据库应尽可能靠近同一数据中心的应用服务器,以最大限度地减少延迟。