繁体   English   中英

Amazon Linux EC2 Webserver / MYSQL升级 - 导致错误建立数据库连接的流量

[英]Amazon Linux EC2 Webserver / MYSQL Upgrade – Traffic causing error establishing a database connection

为了给你一点背景,我目前有一个网站,允许用户上传照片。 该网站最初是在GoDaddy共享服务器上,但最近的流量激增迫使我探索其他选项。 在高峰时段,该站点包含400多个活动访问者,当与用户上载相结合时,会强制共享服务器关闭。

我在通过AWS设置服务器方面有一些经验,并试图将网站放在c1.medium实例Amazon Linux上。 该网站与MYSQL数据库位于同一实例中。 虽然我已经读到这通常不赞成,但我已经同样读到将数据库移动到另一个实例不会显着提高速度。 不幸的是,c1.medium实例也无法支持流量,我很快收到错误建立数据库连接。 该网站有时会加载,因此问题源于流量负载而不是数据库的实际问题。

我的问题是问题是围绕MySQL进行的吗? 备份时数据库本身大约为250MB。 问题是由对数据库的输入/输出请求引起的吗? 我读过有类似问题的人发帖,他们说安装MySQL 5.6解决了这个问题,但也读过MySQL 5.6比MySQL 5.5慢,这是我目前的版本。

在进行一些初步研究后,我开始相信我可以通过增加EBS的IPOS来解决问题。 最初我把IPOS设置为标准,但是将其更改为预配置IOPS和EBS大小的30倍(即60GB - 1800 IOPS)。 这再一次似乎没什么影响。 我需要升级我的实例吗? 在决定实例时,我应该关注哪些措施? 看来,具有高网络性能和EBS优化的最便宜的实例将是c3.xlarge。 建议?

需要考虑的几件事:

1)将数据库服务器与Web服务器分开

您的数据库不应与您的Web服务器共享资源。 结果他们都表现不佳。 更容易找到瓶颈是什么。

2)升级到MySQL 5.6

在我看过和完成的所有基准测试中,5.6的性能优于5.5

3)配置数据库以利用您的资源

根据存储引擎和机器中分配的内存,配置MySQL,例如将innodb_buffer_pool_size设置为(DEDICATED)RAM的 70%

4)监控MySQL并检查慢查询日志

慢查询日志显示缓慢且低效的查询

5)学习使用EXPLAIN

EXPLAIN显示MySQL中的查询计划在慢速查询中运行EXPLAIN来调整它们

6)使用键值存储来缓存查询

使用Memcached或Redis缓存查询,以便它们不会访问您的数据库并从内存中返回重复的查询

7)增加IOPS和扩展

增加IOPS并获得更好的硬件有助于提高效率,但使用高效查询会更有效。 大多数情况下,查询和应用程序是导致性能问题的更大因素

8)复制

如果仍有问题,请考虑转向MySQL主/从复制。

最后注意:使用EBS是因为EC2上的存储是短暂的并且不会持久存在。

我们最近对与全球客户群中的大量最终用户峰值相关的性能瓶颈进行了广泛的研究,并且分析实际上表明数据库 - 迄今为止 - 是导致速度减慢甚至崩溃的最常见原因。 该报告( https://queue-it.com/trend-report )包含了客户关于如何改善情况的最佳实践建议,您可能会发现这些建议很有帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM