CloudWatch Metric Guide
FreeableMemoryAmazon RDS CloudWatch metric
FreeableMemory reports the amount of available random access memory on the RDS instance, in bytes. It includes memory in the OS free pool plus reclaimable cached and buffered memory.
What it measures
About FreeableMemory
FreeableMemory reports the amount of available random access memory on the RDS instance, in bytes. It includes memory in the OS free pool plus reclaimable cached and buffered memory.
| Namespace | AWS/RDS |
| Metric name | FreeableMemory |
| Unit | Bytes |
| AWS docs | Official Amazon RDS metrics reference |
Why this metric matters
RDS performance degrades significantly before an out-of-memory event occurs. As FreeableMemory shrinks, the database starts paging to disk — queries that relied on buffer pool caches begin hitting storage instead, adding latency measured in milliseconds turning into seconds.
For MySQL and PostgreSQL, the InnoDB buffer pool and shared_buffers caches are the primary consumers of memory. When those caches get evicted, query plans that used to scan 100k rows in memory now scan the same rows from EBS — at dramatically higher cost. Monitoring FreeableMemory catches workload creep before it becomes an incident.
Recommended alarm threshold for FreeableMemory
Recommended threshold
< 25% of total instance RAM (or a specific byte floor for your instance class)
AWS documentation recommends monitoring for memory pressure but does not publish a universal percentage threshold. The 25% floor (ConvOps recommendation) balances false positives on instances with large caches against catching genuine memory exhaustion early enough to act. For db.t3 instances where RAM is under 4 GB, a fixed floor of 512 MB may be more appropriate than a percentage.
Is your FreeableMemory alarm already set up correctly?
The free Nuberio Audit scans your CloudWatch setup and flags missing or misconfigured alarms — including FreeableMemory — in 5 minutes.
Common failures that show up in FreeableMemory
When FreeableMemory reaches an alarm threshold, these are the most common root causes — in order of how often Nuberio sees them across customer AWS accounts.
Sudden large query — an unindexed analytical query runs a full table scan that requires more memory than available, triggering a swap cascade
Connection count growth causing per-connection overhead to accumulate and consume buffer pool space
Autovacuum on PostgreSQL consuming significant working memory during a large table vacuum
Workload growth without right-sizing — queries that fit in memory six months ago no longer do as the dataset has grown
Temporary table explosion — complex joins or sorts creating temp tables that overflow RAM into disk-backed temp storage
How Nuberio debugs FreeableMemory alarms
When FreeableMemory triggers an alarm, Nuberio Diagnose reads CloudWatch Logs, CloudTrail (recent API calls, deploys, config changes), and the current resource state in parallel. It correlates these with AWS/RDS metrics on the same resource — giving you a plain-English root cause with numbered fix options, sent to WhatsApp or Slack, usually within 60 seconds of the alarm firing.
Before any anomaly in FreeableMemory reaches you as a proactive alert (via Nuberio Watch), it passes through 9 verification checks: a Recovery check (did the metric self-heal?), an AWS Status check (is AWS itself having an incident?), a Deploy check (was there a recent Lambda update, ECS deploy, or RDS parameter change in the last 120 minutes?), a Quota check, an Infrastructure check, a Security check, a Flap check (has this metric been anomalous more than 5 times in the last 24 hours?), a TLS check, and a Vulnerability check. Only anomalies that pass all relevant checks reach you — with full context attached.
Nuberio Watch
Detects FreeableMemory anomalies with z-score against 30-day time-bucketed baselines. 9 verification checks before any alert.
Nuberio Diagnose
When a FreeableMemory alarm fires, reads logs, CloudTrail, and resource state. Sends root cause + fix options to WhatsApp or Slack.
Nuberio Audit
Scans your CloudWatch setup for missing or misconfigured FreeableMemory alarms. Free, 5-minute read-only scan.
Related Amazon RDS metrics
FreeableMemory rarely fails in isolation. These metrics tend to correlate — monitor them together for complete Amazon RDS coverage.
FAQ
Frequently asked questions about FreeableMemory
Common questions about setting up CloudWatch alarms for FreeableMemory in Amazon RDS.
What is the recommended CloudWatch alarm threshold for FreeableMemory?+
< 25% of total instance RAM (or a specific byte floor for your instance class). AWS documentation recommends monitoring for memory pressure but does not publish a universal percentage threshold. The 25% floor (ConvOps recommendation) balances false positives on instances with large caches against catching genuine memory exhaustion early enough to act. For db.t3 instances where RAM is under 4 GB, a fixed floor of 512 MB may be more appropriate than a percentage.
Which CloudWatch namespace does FreeableMemory belong to?+
FreeableMemory is published in the AWS/RDS namespace with a unit of Bytes. You can find it in the CloudWatch console under "Metrics" → "AWS/RDS". See the Amazon RDS CloudWatch metrics reference in the AWS documentation.
Does Nuberio automatically create CloudWatch alarms for FreeableMemory?+
Nuberio does not create alarms for you by default — it debugs the alarms you already have (or identifies missing ones). The free Nuberio Audit scans your CloudWatch setup and tells you which Amazon RDS resources are missing a FreeableMemory alarm. Nuberio Watch then monitors FreeableMemory using z-score anomaly detection against a 30-day baseline, running 9 verification checks before alerting you.
Can I use Nuberio without already having a FreeableMemory alarm set up?+
Yes. Nuberio Watch monitors FreeableMemory independently of your CloudWatch alarm configuration — it reads the metric directly from CloudWatch every 5 minutes on the Growth plan. If you run the free Audit first, it will tell you which resources need a FreeableMemory alarm and provide the copy-paste AWS CLI command to create it.
This page is part of the CloudWatch metric guide — thresholds and debugging guidance for every metric across RDS, Lambda, ECS, ALB, EC2, and DynamoDB. To find which Amazon RDS alarms your account is missing — including FreeableMemory — run the free CloudWatch alarm audit. The scan takes under 5 minutes and requires no account.