IOPS或吞吐量? - 确定Amazon RDS实例中的写入瓶颈

Jef*_*eff 11 mysql amazon-web-services amazon-rds

我们每晚加载一些工作,将数十万条记录写入Amazon RDS中运行的Mysql报告数据库.

负载工作需要几个小时才能完成,但我很难搞清楚瓶颈在哪里.

该实例当前正在使用通用(SSD)存储.通过查看云观察指标,我觉得上周的平均值不到50 IOPS.但是,网络接收吞吐量小于0.2 MB /秒.

无论如何,从这些数据中可以看出我是否因网络延迟而受到瓶颈(我们目前正在从远程服务器加载数据......这最终会改变)或者写入IOPS?

如果IOPS是瓶颈,我可以轻松升级到预配置IOPS.但是如果网络延迟是问题,我将需要重新设计我们的加载作业以从EC2实例而不是我们的远程服务器加载原始数据,这将花费一些时间来实现.

任何建议表示赞赏.

更新:有关我的实例的更多信息.我正在使用m3.xlarge实例.它的容量为500GB.使用pentaho的ETL工具完成装载作业.它们从多个(远程)源数据库中提取并使用多个线程插入到RDS实例中.

RDS Cloudwatch指标

ted*_*r42 2

你没有使用太多的CPU。你的记忆力很低。拥有更多内存的实例应该是一个很好的胜利。

您只执行 50-150 iops。这个值很低,在标准 SSD 级别存储上您应该可以一次性获得 3000 个。但是,如果您的数据库很小,它可能会对您造成伤害(因为每 GB 获得 3 iops - 因此,如果您使用的是 50 GB 或更小的数据库,请考虑为预配置的 iops 付费)。

您也可以尝试极光;它使用 mysql,并且据说具有出色的性能。

如果您可以分散写入,峰值就会更小。