I receive a "ThrottlingException" with Amazon DynamoDB Accelerator (DAX) operations. What does this mean, and how do I troubleshoot it?
DAX monitors the CPU utilization of its clusters. When CPU utilization is too high, DAX throttles the request. Therefore, a ThrottlingException limits the rate at which DAX accepts requests for read or write operations.
To reduce the chance of DAX throttling your operations, follow the best practices below to lower your CPU utilization.
Use the following metrics in Amazon CloudWatch to track DAX’s CPU utilization and prevent throttling:
- Monitor the ThrottledRequestCount metric to identify the count of throttled requests by DAX.
- Use the CPUUtilization metric to identify the percentage of CPU utilization of the node or cluster.
- Use TotalRequestCount to identify if there is an increase in number of requests handled by the cluster.
- Use operation specific metrics such as GetItemRequestCount, PutItemRequestCount, QueryRequestCount, or ScanRequestCount to identify spikes in any operation’s requests.
- Use ItemCacheMisses, QueryCacheMisses, or ScanCacheMisses to identify an increase in cache misses.
For more information on the metrics you can use, see DAX metrics.
If CPU utilization is consistently high and there’s an increase in read or write traffic to the cluster, then scale the cluster out or up:
- If CPU utilization is high and there’s an increase in read traffic with low cache misses, then scale out the cluster. For more information, see Horizontal scaling.
- If CPU utilization is high and there’s an increase in write traffic with high cache misses, then scale up the cluster. For more information, see Vertical scaling.