We use Amazon RDS for database servers and historically have had a practice of having smaller database server in QA and DEV to save cost. I would consider this a pretty common practice - but what I have also discovered is that it can lead to fixing non-bugs, or issues that will not arrise in production.
Let me try and describe a (~) worst case and some simple math to illustrate:
Production
- 10G of RAM
- 100 IOPS Storage Device (single hard disk)
- Workload is 100% reads
- 10K queries/second
QA
- 9G of RAM
- 100 IOPS Storage Device (single hard disk)
- Same workload (100% reads)
- Can only do 1K queries/second!
Production is serving its 10K queries/second with a 100% cache hit rate, but with the 1G less RAM, QA is only able to serve with a 99% cache hit rate. Each query touches on average 10 distinct …
[Read more]