I am in the process of upgrading/selecting resources for an application powered by a MySQL database running on Amazon RDS. I am considering introducing read replicas and some other strategies to increase availability under increasingly heavy loads. (The oldest story in the book.) As such, I have been monitoring my DB server and trying to get a grasp on where bottle necks are and such, and I am getting some very conflicting information on what the read/write ratio is:
Firstly, I will say that my application is relatively write heavy compared to many other types of applications. I know that much.
Using cloud watch in the AWS RSD control panel, I am typically seeing the following metrics:
Read Operation to Write Operation ratio: 1:20 (1 read for every 20 writes)
Read and write ratios for throughput and latency are generally consistent with that ratio.
This seems utterly absurd to me. I can't imagine how or why my app would be doing so many more writes than reads.
As such, I went looking for a second opinion, in the form of monitoring my DB in real time with MySQL Work Bench Administration Dashboard. There, the evidence is different. I am seeing the following on average:
Read Query Execution to Write Query Execution: 6:1 (6 reads queries executed for every 1 write query executed)
Either one of these monitoring tools is wildly inaccurate, or I have a fundamental misunderstanding of the data.
On to the questions:
Why would these two tools be showing such wildly different results?
Is there a better way for me to accurately determine the effective read/write ratio of my Database so that I can make prudent scaling decisions?