Amazon RDS has a metric for 'freeable memory'. It appears to go up & down in a sawtooth pattern.

This leads me to believe that it's memory that is being used by MySQL for caching and that when the cache expires, more freeable memory appears. Any definitive documentation would be great.

  • Hey Adam, I scoured Google and Yahoo. Nobody has posted any AWS Management Console input anywhere. I also see that you posted this question in many forums in the past. I hope you find you answer someday soon. – RolandoMySQLDBA Mar 3 '11 at 21:25

It includes cached memory and memory used for buffers (besides what's really free/unused). They'll all be freed if an application requests more memory than what's free.

| improve this answer | |
  • 15
    Where does this information come from? Is this a fact or a guess? – Samuli Pahaoja Sep 28 '15 at 6:45

It is basically available RAM. See answer from AWS here https://forums.aws.amazon.com/thread.jspa?threadID=209720 and the official docusmtation here http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_BestPractices.html.

If you have a lot of freeable memory you can downgrade to a smaller instance. If you are running out of freeable memory, then it is time to upgrade.

| improve this answer | |
  • 1
    "If you have a lot of freeable memory you can downgrade to a smaller instance." - I suspected this, but (not surprisingly) nowhere in Amazon documents does it say this. – ToolmakerSteve Apr 5 '19 at 20:25

From this Q&A on the AWS Forum:

The freeable memory includes the amount of physical memory left unused by the system plus the total amount of buffer or page cache memory that are free and available.

So it's freeable memory across the entire system. While MySQL is the main consumer of memory on the host we do have internal processes in addition to the OS that use up a small amount of additional memory.

If you see your freeable memory near 0 or also start seeing swap usage then you may need to scale up to a larger instance class or adjust MySQL memory settings. For example decreasing the innodb_buffer_pool_size (by default set to 75% of physical memory) is one way example of adjusting MySQL memory settings.

| improve this answer | |

FreeableMemory is the memory that's being consumed by OS cache, and it will be given back when needed and nothing to worry about.

| improve this answer | |
  • A caveat to this is database performance that is relying on that cache. Query performance may change considerably if suddenly large portions of the cache are evicted to free up memory for something else. – ives Oct 22 at 21:29

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.