# Does my server need more memory?

**URL:** <https://forums.percona.com/t/does-my-server-need-more-memory/32732>\
**Category:** Percona Operator for MySQL\
**Created:** [August 30, 2024, 7:22am UTC](https://forums.percona.com/t/does-my-server-need-more-memory/32732 "2024-08-30T07:22:20Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Jamie\_Downs](https://sea1.discourse-cdn.com/flex019/user_avatar/forums.percona.com/jamie_downs/32/5836_2.png) [@Jamie\_Downs](https://forums.percona.com/u/Jamie_Downs)\
**Post date:** [August 30, 2024, 7:22am UTC](https://forums.percona.com/t/does-my-server-need-more-memory/32732/1 "2024-08-30T07:22:20Z")

</div>

Hello,  
I’m trying to find a reliable method to see if MySQL would benefit with more memory?  
My current approach is to use the output from show engine innodb status. i.e.  
Buffer pool hit rate 1000 / 1000  
If it is 1000 / 1000 things are good.  
Is this too simplistic? What approaches do other people use?  
Thanks.

---

<div class="post-metadata">

**Author:** ![matthewb](https://sea1.discourse-cdn.com/flex019/user_avatar/forums.percona.com/matthewb/32/34_2.png) [@matthewb](https://forums.percona.com/u/matthewb)\
**Post date:** [August 30, 2024, 12:10pm UTC](https://forums.percona.com/t/does-my-server-need-more-memory/32732/2 "2024-08-30T12:10:52Z")

</div>

@Jamie_Downs, you need to look at buffer pool reads vs buffer pool read requests. The former indicates a buffer pool “miss” which must go to disk. If the ratio of misses to cached reads is \< 90%, then you could probably benefit from more memory to the buffer pool.

---

<div class="post-metadata">

**Author:** ![Jamie\_Downs](https://sea1.discourse-cdn.com/flex019/user_avatar/forums.percona.com/jamie_downs/32/5836_2.png) [@Jamie\_Downs](https://forums.percona.com/u/Jamie_Downs)\
**Post date:** [August 30, 2024, 12:39pm UTC](https://forums.percona.com/t/does-my-server-need-more-memory/32732/3 "2024-08-30T12:39:07Z")

</div>

Thanks Matthew.  
So the following would be pretty good for a box that’s been up for a while?  
show global status like ‘%Innodb\_buffer\_pool\_read%’;  
±--------------------------------------±--------------+  
| Variable\_name | Value |  
±--------------------------------------±--------------+  
| Innodb\_buffer\_pool\_read\_ahead\_rnd | 0 |  
| Innodb\_buffer\_pool\_read\_ahead | 64304068 |  
| Innodb\_buffer\_pool\_read\_ahead\_evicted | 0 |  
| Innodb\_buffer\_pool\_read\_requests | 4180641185206 |  
| Innodb\_buffer\_pool\_reads | 599335740 |  
±--------------------------------------±--------------+

select (599335740/4180641185206)\*100 as bpoolhitrate;  
±-------------+  
| bpoolhitrate |  
±-------------+  
| 0.0143 |  
±-------------+

---

<div class="post-metadata">

**Author:** ![matthewb](https://sea1.discourse-cdn.com/flex019/user_avatar/forums.percona.com/matthewb/32/34_2.png) [@matthewb](https://forums.percona.com/u/matthewb)\
**Post date:** [August 30, 2024, 2:34pm UTC](https://forums.percona.com/t/does-my-server-need-more-memory/32732/4 "2024-08-30T14:34:03Z")

</div>

> [@Jamie\_Downs](#):
>
> Innodb\_buffer\_pool\_read\_requests

My apologies. I had it backwards. I’ve edited my post above.

Innodb\_buffer\_pool\_read\_requests - logical reads from buffer pool  
Innodb\_buffer\_pool\_reads - disk reads / miss from pool

So do this:

```auto
_read_requests / (_read_requests + _reads) * 100 = hit ratio

```

You have a 99.98% hit rate. You are good 👍 If things still feel slow, run EXPLAIN on all queries and verify they are using proper indexes. More often than not, poor performance in MySQL is a result from bad queries, not from improper configuration.

---

<div class="post-metadata">

**Author:** ![Jamie\_Downs](https://sea1.discourse-cdn.com/flex019/user_avatar/forums.percona.com/jamie_downs/32/5836_2.png) [@Jamie\_Downs](https://forums.percona.com/u/Jamie_Downs)\
**Post date:** [August 30, 2024, 3:14pm UTC](https://forums.percona.com/t/does-my-server-need-more-memory/32732/5 "2024-08-30T15:14:07Z")

</div>

Perfect thanks for the further explanation and clarification. Really useful.
