Skip to content

For AuroraMemoryHealthState, what does a value between 0 and 10 mean?

0

The documentation related to troubleshooting memory in Aurora could be improved. I'd like more detail about AuroraMemoryHealthState.

https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraMonitoring.Metrics.html#:~:text=AuroraMemoryHealthState

Indicates the memory health state. A value of 0 equals NORMAL. A value of 10 equals RESERVED, which means that the server is approaching a critical level of memory usage.

For more information, see Troubleshooting out-of-memory issues for Aurora MySQL databases.

If following the provided Troubleshooting link, there isn't additional detail related to this metric. https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQLOOM.html

In my environment, I have a decent number of MySQL Aurora clusters that have values between 0 and 10. Sometimes instances will have a constant value of 5 that then briefly drops to 0 or spikes to 10 before returning to 5. Others change over time (for example, one of them spiked over the last 3 hours going from 0 --> 1 --> 0 --> 2 --> 0 --> 3 --> 2 --> 0 --> 5).

What exactly do these values mean? How are they calculated?

asked 9 months ago259 views

1 Answer
0

The AuroraMemoryHealthState metric indicates the memory health state of your Aurora MySQL database instance, with values ranging from 0 to 10.

A value of 0 represents a NORMAL state, indicating sufficient memory resources and normal operation. A value of 10 represents a RESERVED state, indicating that the server is approaching a critical level of memory usage.

Values between 0 and 10 represent intermediate states of memory pressure, with higher values indicating increasing levels of memory constraint. These intermediate values suggest that the system is experiencing some degree of memory pressure but hasn't yet reached the critical RESERVED state.

When your instances show values like 5 that fluctuate to 0 or 10, this indicates varying levels of memory pressure over time. The fluctuations you're observing (0 → 1 → 0 → 2 → 0 → 3 → 2 → 0 → 5) represent the dynamic nature of memory usage in your database as workloads change.

This metric is closely related to Aurora's OOM (Out of Memory) Avoidance feature, which monitors system memory and takes actions when memory runs low. When memory pressure increases and the AuroraMemoryHealthState value rises, the OOM Avoidance feature may begin taking actions based on your configuration of the aurora_oom_response parameter. These actions can include printing information about memory-intensive queries, tuning internal table caches, declining new queries, or killing existing queries to free up memory.

For Aurora MySQL version 3.06.0 and higher, there's also a related status variable called aurora_oom_status that provides similar information, showing either NORMAL or RESERVED states.
Sources
Aurora and RDS database metrics - AWS Compute Optimizer
Viewing Aurora and RDS database recommendations - AWS Compute Optimizer
Aurora MySQL global status variables - Amazon Aurora
Aurora MySQL database engine updates 2018-09-20 (version 1.18.0) (Deprecated) - Amazon Aurora

answered 9 months ago

EXPERT

reviewed 9 months ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.