我之前从未使用过AWS,并创建了一个在EC2实例上托管的php应用程序。
应用程序在处理完RDS后将其记录到RDS中。在免费套餐上,它以每秒约10条记录的速度插入它们。
我将如何提高此过程的速度?我添加了100GB配置的IOPS存储,限制为1000 iops。
然而,当我运行我的应用程序时,我获得与以前相同的速度。
Ec2实例和RDS实例的哪些规范将决定它写入数据库的速度有多快?
答案 0 :(得分:1)
提供EC2和RDS实例位于同一区域,您可以通过提高RDS规范获得更多性能,但通常情况下,MySQL在写入时速度不快,尤其是在向表中添加更多索引时。
您可以通过在查询中对插件进行批量处理而不是单独执行这些操作来获得更好的性能,例如
INSERT INTO users (name, gender) VALUES
('bob', 'm'),
('jane', 'f')
如果您使用某种排队系统(如SQS或弹性缓存)写入内存并以异步方式批量插入它们,这可能会更容易。
答案 1 :(得分:1)
请注意
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 with burst IO也可以获得额外的价值。