I'm using Amazon Elasticsearch Service (Amazon ES), and my domain is performing poorly, or my clusters show a red status. How do I scale up?

Issues with poor Amazon ES domain or cluster performance are usually caused by a lack of storage, over-utilized CPUs, insufficient memory, or a combination of these factors. The effects of insufficient capacity can include:

  • Poor performance
  • Red cluster status
  • Blocked writes or index creation
  • Failed snapshot creation
  • Data loss

To identify the source of these issues, check the following CloudWatch metrics for your Amazon Elasticsearch infrastructure:

  • FreeStorageSpace: This metric measures the number of free megabytes of storage for the nodes in your cluster. If you have low or no free storage space on your cluster, add more storage space.
  • CPUUtilization: This metric measures the percentage of CPU resources used by all data nodes in the cluster. If this metric is consistently at or above 70, add more CPU resources.
  • JVMMemoryPressure: This metric measures the maximum percentage of the Java heap used for all data nodes in the cluster. If this metric is consistently above 75, add more memory. Note: Increasing the amount of memory available to your resources might also help decrease CPU utilization.

Reduce the resources your application uses

To reduce the overall resources required to run your application, try the following, if possible:

  • Tune the amount of memory used by filters, caches, and aggregations.
  • Use doc values.
  • Reduce the number of shards in your cluster.
  • Simplify your index mapping.

Add more storage

Add more CPU resources

Add more memory

Configure Amazon CloudWatch alarms

  • Configure CloudWatch alarms to notify you when metrics are above certain thresholds (for example, if CPUUtilization is above 80%).

Consider updating your Amazon ES version

Did this page help you? Yes | No

Back to the AWS Support Knowledge Center

Need help? Visit the AWS Support Center

Published: 2016-11-11

Updated: 2018-05-15