AWS RDS DB 部署时速度慢

Posted

技术标签:

【中文标题】AWS RDS DB 部署时速度慢【英文标题】:AWS RDS DB slow when deployed 【发布时间】:2018-12-30 07:24:26 【问题描述】:

我正在尝试在 AWS 上实施一个 CMS,主要使用免费层级服务,并且正在使用 php,并且已经在学校使用 PHPMyAdmin 实施了这个。

问题:


我想使用 RDS 来做到这一点,但我想出了一个非常奇怪的问题。

当我将我的网站上传到 Elastic Beanstalk 并尝试从那里连接到数据库时,我面临着非常长的等待时间。有时它会因等待时间过长而返回错误 504。

不过,这不是数据库速度的问题。我知道这一点是因为 我可以在 localhost 上运行此代码,它的工作原理完全符合预期(见图)

加载只需半秒!

我认为正在发生的事情:


在 Elastic Beanstalk 中执行时,一定发生了一些事情。我不太清楚是什么,但它需要的时间太长了。

额外信息:


我使用以下代码连接到数据库(凭据被欺骗):

$conn = mysqli_connect("mydb.cebelvm3fa0n.ca-central-1.rds.amazonaws.com","USERNAME","PASSWORD","mydb");

我的数据库和 EL 实例都是从 ca-central 运行的。连接没有失败,它需要很长时间。

失败的页面是http://howardpearce.ca/posts.php

如果您对它可能是什么有任何想法,我将非常感激。谢谢!

注意:

我将发布我的代码的某些部分,但创建 MCVE 确实是 不可行,因为我必须提供我的数据库密码,你会 需要重新创建我的 AWS 环境,所以请不要要求一个,我 可以随时提供更多细节。

【问题讨论】:

你检查过弹性豆茎日志吗?在 Web 控制台的日志记录部分,您可以请求最后 100 行日志。他们可能有一些线索。另外,它有时真的会成功吗? IE。确定不是防火墙问题? 它之前已经成功了,但那是它在每个页面上加载数据库的时候。它现在超时了,因为在帖子上它也在尝试一些选择查询以及连接。我去看看日志,谢谢! 我检查了日志,最明显的是得到了错误PHP Warning: mysqli_connect(): (HY000/2002): Connection timed out in /var/app/current/posts.php on line 3 ,当搜索到***.com/questions/42051976/… 我现在明白了...我没有允许来自服务器的连接的安全组。现在就开始吧,如果解决了,我会发布答案。 仅供 AWS 新手参考,如果您的数据库和应用程序有不同的服务器,您可以通过将服务器部署在同一个归置组中获得更低的延迟优势。 【参考方案1】:

@colde 提到检查日志后,我很快找到了一个错误代码,引导我找到正确的资源。

我的数据库仅配置为允许来自我的 IP 的连接,而防火墙阻止了我的 Elastic Beanstalk 实例,我只需要添加一个新的安全规则。

谢谢!

【讨论】:

以上是关于AWS RDS DB 部署时速度慢的主要内容,如果未能解决你的问题,请参考以下文章

AWS RDS下MySQL ADD COLUMN慢

Azure DB 上 C# 中的 SQL 插入语句 - 运行速度非常慢

Github Pages 速度慢 vercel 部署静态博客

使用 AWS RDS 的 Django `TransactionTestCase` 测试用例非常慢

sqlserver 链接服务器 连接db2 查询速度慢

Elasticsearch 索引速度慢