I have been working on a product in our staging environment which is receiving a copy of the same load that our production system does in real-time (to make sure that we know what to expect when we move to production). But when I deployed the new code to our production environment we noticed that instead of having read IOPS all our reads turned into write IOPS.
For example, before we were doing 1500-8000 read IOPS in staging and when we deployed in production we started doing 1000-15000 write IOPS.
Our setup:
- Staging: 1x db.r4.2xlarge aurora-postgres instance
- Production: 2x db.r4.2xlarge aurora-postgres instances
The staging and production environments are running on two different AWS accounts but in the same region (us-east-2), in case it matters. π
The aurora instances are provisioned using Terraform so the settings are all the same. And I can’t find any differences in the tables and database settings between staging and production.
I’m at the end of my wits for this, any suggestions for what I could try out to explain or measure this? π