2017-02-27 59 views
0

我们一直在使用一家公司来管理我们在亚马逊的数据库集群,经过5年的关系,我失去了对它们的完全信任。亚马逊RDS和管理我自己的数据库

几个月前,我们开始在Heroku上遇到超时,我们被告知是由于太多的消息被写入了耗用100 GB空间的日志。我被指示删除数据(从两个数据库中的原始36GB中删除10GB),然后告诉我们即使删除数据也没有有效地回收空间。

我们上周搬到了亚马逊的一个M1.small实例,两个小时后我们完全关闭了。一个小时后,他们终于将我们移动到一个M1.xlarge实例。他们写道:

...realtime monitoring of the affected unit showed very high i/o wait 
times, indicating that the unit was 'disk bound', that is, the delay 
was caused by reads that had to go to disk instead of being found in 
the memory cache 

当我看到(M1)上的配置信息,这似乎令人惊讶,他们选择了一个选项,更昂贵,这是EBS一个插件。 M4的选择是较便宜的新一代,包括EBS,不收取额外费用。我在这里纠正?

因为我没有命令行访问权限,所以当我遇到问题时,我完全依赖于到达数据库管理员。这导致我们在等待答复的同时下降了15分钟。

也许我很天真,但似乎数据库 - 在适当的环境下,需要很少关注,并且大多数问题都可以通过我自己的命令行访问来解决。我已经编程了二十年,显然管理我自己的数据库多年,但我不是数据库管理员。你能告诉我管理我自己的数据库的陷阱吗,我可能不知道?

我觉得一个错误是没有正确评估我们的需求,然后把我们转移到一个小实例,只有意识到他们不得不立即扩大规模。我应该分析哪些标准来确定亚马逊的适当数据库大小和选择?

任何其他信息,你可以提供表示赞赏。

回答

0

这些天旋转新的M1实例是疯狂的。你是正确的,你应该利用最新的实例类。我猜测他们的数据库在EC2 Classic环境中运行,而不是更现代的VPC环境,这阻止了使用更新的AWS功能。

你正在使用什么类型的数据库引擎?你为什么不使用亚马逊的RDS服务?

+0

我们有InnoDB和MyISam表的组合。老实说,我认为我们正在利用亚马逊的RDS服务,并且今天早上才了解到我们正在使用M1。您是否有建议转向InnoDB或评估选择适当实例的标准? –

+0

由于您是磁盘绑定的,这听起来像您需要EBS优化的实例类型,除此之外,您只需使用正确的IOPS配置EBS卷即可。确切地确定需要的实例大小以及您需要的IOPS通常归结为查看CloudWatch指标以了解您的历史CPU和IOPS使用情况,以确定您需要支持的内容。 作为一个方面说明,我肯定会建议您考虑迁移到AWS Aurora。 –

+1

请他们采取iostat读数,并告诉你平均偷窃时间。这些都是共享的,如果基础设施不堪重负,通常会显示过度分配。另外,除非将MyISAM表用于信号量或静态数据,否则最好去InnoDB。 –