Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Increase Provisioned IOPS in RDS leads to downtime?

We have an m4.2x large RDS Postgres instance, with 300 GB storage and 1000 Provisioned IOPS.

We want to increase the PIOPS to 2000, will there be a downtime involved? If the performance will be downgraded, is there a measure by how much?

I could not find any relevant documentation talking about effects of increasing PIOPS on the instance while the change is taking place.

Thanks

like image 596
ketanbhatt Avatar asked Oct 28 '17 18:10

ketanbhatt


People also ask

Does upgrading RDS cause downtime?

Upgrades to the database engine level require downtime. Even if your RDS DB instance uses a Multi-AZ deployment, both the primary and standby DB instances are upgraded at the same time. This causes downtime until the upgrade is complete, and the duration of the downtime varies based on the size of your DB instance.

Can we increase IOPS in RDS?

If your application supports sharding, you can create a second RDS instance doubling the available IOPS and changing the configuration of your application.

What should I choose Provisioned IOPS over standard RDS storage?

For any production application that requires fast and consistent I/O performance, Amazon recommends Provisioned IOPS (input/output operations per second) storage. Provisioned IOPS storage is optimized for I/O intensive, online transaction processing (OLTP) workloads that have consistent performance requirements.


3 Answers

There will be no downtime according to Amazon. Reference below.

IOPS: The new Provisioned IOPS (I/O operations per second) value for the RDS instance. Changing this setting does not result in an outage and the change is applied during the next maintenance window unless the ApplyImmediately parameter is set to true for this request.

Default: Uses existing setting

Constraints: Value supplied must be at least 10% greater than the current value. Values that are not at least 10% greater than the existing value are rounded up so that they are 10% greater than the current value. If you are migrating from Provisioned IOPS to standard storage, set this value to 0. The DB instance will require a reboot for the change in storage type to take effect.

ModifyDBInstance

like image 190
John Hanley Avatar answered Oct 23 '22 10:10

John Hanley


So, after @John Hanley's answer (and testing on a test instance) we went ahead with the change.

The Operation took around 1 hour and 6 minutes. Here are the relevant charts from the period.

enter image description here

We faced no downtime during this period. And even though the total IOPS (~1600) was higher than our old limit (1000) we didn't face any degradation in performance.

Thought this will be helpful for people in the same situation.

like image 24
ketanbhatt Avatar answered Oct 23 '22 10:10

ketanbhatt


In case it saves someone else some delay and worry, we've just done something a lot like this (MySQL 100GB, 1000 IOPS to 2000 IOPS). I'd guess the Elastic Volumes change is responsible, but we saw only a very small impact on performance for <1min even though we were pretty much maxing out our IOPS with writes before the change. According to RDS Events, the whole modification process took about 2 minutes, though I'm pretty sure the status was "Storage-optimization" for at least half an hour.

like image 4
Dave Gregory Avatar answered Oct 23 '22 11:10

Dave Gregory