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
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.
If your application supports sharding, you can create a second RDS instance doubling the available IOPS and changing the configuration of your application.
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.
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
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.
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.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With