MySQL – Optimization: Is Increasing Innodb_pool_size Useful?

amazon-rdsdatabase-tuninginnodbMySQL

We run an AWS RDS instance with 8vCPUs and 64GB memory.
All tables are using InnoDB engine.

I have kept the default setup of innodb_pool_size to be half the memory.

What I see is that almost 30Gb of memory is used and no read I/O operation (except for some spikes).

Freeable memory:
Freeable memory

Read IO:
Read IO

I've seen some great blog post, answers (like this one How large should be mysql innodb_buffer_pool_size?) about tuning MySQL.

Would it be beneficial to increase the innodb_pool_size to something like 3/4 of the memory? As I don't see read IO.

Also, but I don't know if that is related: what can explain this huge storage drop in a couple of minutes? We don't store large objects, BLOBs, etc.

Free Storage:
Free Storage

Best Answer

It's good you don't see a lot of reads, ideally it should be zero if available memory permits.

When InnoDB needs a page it checks the buffer pool. If the page is in the buffer pool - done. If not - InnoDB will read it from the disk and cache it in the buffer pool. So, if the data set fits into the buffer pool there will be eventually no reads from disk.

If you already get no reads further buffer pool increase won't increase performance.

The storage drop - I don't know RDS is a black box, who know what's going on there.