# Performance and Sizing Help and Insights

**URL:** <https://discuss.elastic.co/t/performance-and-sizing-help-and-insights/203846>\
**Category:** Elasticsearch\
**Tags:** docker\
**Created:** [October 16, 2019, 1:14pm UTC](https://discuss.elastic.co/t/performance-and-sizing-help-and-insights/203846 "2019-10-16T13:14:49Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![cwade](https://avatars.discourse-cdn.com/v4/letter/c/7cd45c/32.png) [@cwade](https://discuss.elastic.co/u/cwade)\
**Post date:** [October 16, 2019, 1:14pm UTC](https://discuss.elastic.co/t/performance-and-sizing-help-and-insights/203846/1 "2019-10-16T13:14:49Z")

</div>

Question:  
We are looking for some guidance or some commentary on our OpenDistro cluster which is deployed onto our Kubernetes infrastructure via Helm. I have noted the current configuration for the cluster below.  
While our cluster seems stable, if there are slight bumps in the night the cluster seems to become unstable quickly. We recently had an issue where two (2) of the client containers were destroyed and recreated. This caused the masters to disconnect and the cluster to become unstable and yellow. Several shard had to be reinitialized which took ~36 hours to complete. During the yellow period we noticed a drop in the ingest rate by ~20%.  
On previous occasions we recognized that garbage collection on the clients was impacting the rate of ingest, and we were seeing drops in the rate by 10-15% per day until the client containers were destroyed and redeployed (individually and serially).  
We feel as though we are at the edge of a cliff with the current configuration of the cluster. As slight wind and it causes the cluster to fall and become yellow or red.  
We are hoping that others can provide some insight into the next steps toward further stabilizing the cluster and enabling solid scaling for ingest. We would like to stop shooting in the dark with where in the cluster to devote resources and attention. It does not seem that there are any examples online that meet this same level of ingest rate on Kubernetes.

Version:

- OD: 1.1.0
- ES: 7.1.1

Data Type:

- Syslog

Index Configuration:

- Single daily index
  - Shards: 10
  - Replica: 1

- Ingest Rate
  - Documents per Day: ~6,800,000,000
  - Size per Day: 1.8TB

- Retention
  - Indices closed after: 7 days
  - Indices deleted after: 30 days

Architecture:

1. Data:
  - Number: 10
  - CPU: 4
  - Memory: 32G
  - Heap: 16G

2. Master:
  - Number: 5
  - CPU: 4
  - Memory: 16G
  - Heap: 8G

3. Client:
  - Number: 5
  - CPU: 2
  - Memory: 8G
  - Heap: 4G

Storage:

- Storage Backed:
  - NFS mounts to data nodes
  - Disks: 7.2K

Garbage Collection:

- JAVA\_OPTS: "-XX:-UseConcMarkSweepGC -XX:-UseCMSInitiatingOccupancyOnly -XX:+UseG1GC -XX:MaxGCPauseMillis=20 -XX:InitiatingHeapOccupancyPercent=75"

---

<div class="post-metadata">

**Author:** ![Christian\_Dahlqvist](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/christian_dahlqvist/32/4617_2.png) [@Christian\_Dahlqvist](https://discuss.elastic.co/u/Christian_Dahlqvist)\
**Post date:** [October 16, 2019, 7:02pm UTC](https://discuss.elastic.co/t/performance-and-sizing-help-and-insights/203846/2 "2019-10-16T19:02:29Z")

</div>

I have a few questions about the numbers you presented:

- Is that 1.8TB data indexed per day the raw document size, the primary index size on disk or the total replicated index size on disk?
- What is your average shard size?
- Do you have monitoring installed? If so, what does the heap usage on the data nodes look like?
- Is there anything in the logs that indicate long and/or frequent GC?

---

<div class="post-metadata">

**Author:** ![cwade](https://avatars.discourse-cdn.com/v4/letter/c/7cd45c/32.png) [@cwade](https://discuss.elastic.co/u/cwade)\
**Post date:** [October 16, 2019, 7:12pm UTC](https://discuss.elastic.co/t/performance-and-sizing-help-and-insights/203846/3 "2019-10-16T19:12:35Z")

</div>

@Christian_Dahlqvist

1. 1.8TB is the primary index size on disk.
2. The average shard size is 180GB.
3. We leverage Cerebro to give us "monitoring" and insight into the cluster. We also have a limited grafana dashboard. Which we use to monitor mostly just GC at this point.  
3a. I would appreciate some insight into some KPI or preformance metrics that we should add to grafana dashboard to monitor health.
4. See number 3.

---

<div class="post-metadata">

**Author:** ![Christian\_Dahlqvist](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/christian_dahlqvist/32/4617_2.png) [@Christian\_Dahlqvist](https://discuss.elastic.co/u/Christian_Dahlqvist)\
**Post date:** [October 16, 2019, 7:39pm UTC](https://discuss.elastic.co/t/performance-and-sizing-help-and-insights/203846/4 "2019-10-16T19:39:33Z")

</div>

180GB shards is quite big. It is often recommended to keep the shard size around 50GB, primarily to speed up recovery and shard relocation. I would therefore probably recommend switching to use rollover so you can set a target index size and roll over to a new index when required.

If I calculate correctly that means each node holds about 2.5TB of open indices (over 10TB including closed), which is quite a lot for a node that is indexing heavily given the heap size you have specified. I would probably recommend scaling up or out the data nodes in the cluster. Given that you have so short retention period performing a force merge down to a single segment to save heap space might not be worth it.

I would recommend you have a look at the following resources:

> **[Quantitative Cluster Sizing](https://www.elastic.co/webinars/elasticsearch-sizing-and-capacity-planning)**
>
> This webinar covers the capacity planning frameworks, methodologies, and best practices used by the solutions architects at Elastic. You will learn how to estimate the architecture requirements for typical Elasticsearch use cases.

> **[Optimizing Storage Efficiency in Elasticsearch](https://www.elastic.co/webinars/optimizing-storage-efficiency-in-elasticsearch)**
>
> This video covers the different types of nodes we use in Hot/Warm/Cold architectures and discuss their characteristics and the factors that determine how much data each node type can hold and how you go about optimizing for this.

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [November 13, 2019, 7:39pm UTC](https://discuss.elastic.co/t/performance-and-sizing-help-and-insights/203846/5 "2019-11-13T19:39:36Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
