AWS增加iops
问题描述:
我以前从未使用过AWS,并创建了一个托管在EC2实例上的php应用程序。AWS增加iops
应用程序在处理它们后将记录插入到RDS中。在免费的阶段,它以每秒10个记录的速度插入它们。
我该如何去改善这个过程发生的速度?我已经添加了100GB配置的IOPS存储,限额为1000个iops。
但是,当我运行我的应用程序时,我获得了与以前相同的速度。
关于Ec2实例和RDS实例的规格将决定它将写入数据库的速度有多快?
答
提供EC2和RDS实例在同一个区域,您可以通过增加RDS规范来获得更高的性能,但通常MySQL的写入速度并不是那么快,特别是在向表中添加更多索引时。
您可以通过在查询中批量插入代码而不是单独执行它们来获得更好的性能,例如,
INSERT INTO users (name, gender) VALUES
('bob', 'm'),
('jane', 'f')
如果使用某种像SQS或elasticache排队系统的写入到内存中,并在批量插入异步他们这可能是更容易。
答
请注意
AWS免费层实例仅仅意味着随意使用。 t2.micro正在“CPU信用”突发模式下运行。一旦用完了这些CPU信用,服务器就会扼杀25%以上的CPU,因此你的性能将受到影响。
您应该投入一点时间在Cloudwatch上发送RDS IOPS信息以了解真正的问题,例如,找出它是CPU,RAM还是IO问题。
AWS在相当长一段时间内引入了SSD gp2存储。因此,您应该使用AWS每GB x 3 IOPS机制,而不是直接跳入预置IOPS。 这篇文章告诉你why you should over provisioned gp2 storage than use provisioned IOPS。 gp2与突发IO也可以获得额外的价值。
预设IOPS对于磁盘时代是指平均值。首先使用gp2并保持100GB磁盘空间(即100 x 3 = 300 IOPS)。 – mootmoot