# Hardware recomendations

**URL:** <https://discuss.elastic.co/t/hardware-recomendations/364079>\
**Category:** Elasticsearch\
**Created:** [July 30, 2024, 5:17pm UTC](https://discuss.elastic.co/t/hardware-recomendations/364079 "2024-07-30T17:17:17Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![\_james](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/_james/32/136401_2.png) [@\_james](https://discuss.elastic.co/u/_james)\
**Post date:** [July 30, 2024, 5:17pm UTC](https://discuss.elastic.co/t/hardware-recomendations/364079/1 "2024-07-30T17:17:17Z")

</div>

We have an Elasticsearch cluster which needs a hardware refresh, we currently have 5 servers each of "AMD EPYC 7702P 64-Core Processor" and 512GB of RAM, these machines are sitting around 60-80 % busy and this is why then need replacing.

The cluster averages about 270 requests a second. I am thinking about 5 machines with either zen 5 or zen5c processors. We have no ML workloads. How do I decide what processors I should look at ?

---

<div class="post-metadata">

**Author:** ![Kathleen\_DeRusso](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/kathleen_derusso/32/132039_2.png) [@Kathleen\_DeRusso](https://discuss.elastic.co/u/Kathleen_DeRusso)\
**Post date:** [August 2, 2024, 8:13pm UTC](https://discuss.elastic.co/t/hardware-recomendations/364079/2 "2024-08-02T20:13:51Z")

</div>

My suggestion would be to focus on RAM and total number of cores first.

---

<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:** [August 2, 2024, 8:18pm UTC](https://discuss.elastic.co/t/hardware-recomendations/364079/3 "2024-08-02T20:18:04Z")

</div>

One of the most important factors when selecting hardware for Elsticsearch is the storge as Elasticsearch can be very I/O intensive, especially if the data set does not fit in the operating system page cache or there is a lot of indexing/updates.

Have you analysed what Elasticsearch is spending time on when it is busy? Have you run the hot threads API?

---

<div class="post-metadata">

**Author:** ![\_james](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/_james/32/136401_2.png) [@\_james](https://discuss.elastic.co/u/_james)\
**Post date:** [August 2, 2024, 9:17pm UTC](https://discuss.elastic.co/t/hardware-recomendations/364079/4 "2024-08-02T21:17:04Z")

</div>

I have intel optane drives, those things are very fast and I am going to shift the drives over when I buy new hardware.

The comment about number of cores pushes me towards zen5c, currently with 128 threads I still have plenty of ram left over with the data on disk being 107GB.

```auto
james_@elastic01:~$ free -g
               total used free shared buff/cache available
Mem: 440 39 252 0 148 397
Swap: 9 0 9

```

Running the hot threads api, I don't know how to interpret this ...

```auto
   100.3% [cpu=100.3%, other=0.0%] (501.6ms out of 500ms) cpu usage by thread 'elasticsearch[elastic05][search][T#102]'
     4/10 snapshots sharing following 27 elements
       app//org.apache.lucene.util.packed.MonotonicLongValues.get(MonotonicLongValues.java:40)
       app//org.apache.lucene.util.packed.PackedLongValues.get(PackedLongValues.java:108)
       app//org.apache.lucene.index.OrdinalMap$3.get(OrdinalMap.java:328)
       app//org.elasticsearch.index.fielddata.ordinals.SingletonGlobalOrdinalMapping.ordValue(SingletonGlobalOrdinalMapping.java:69)
       app//org.apache.lucene.index.SingletonSortedSetDocValues.advanceExact(SingletonSortedSetDocValues.java:83)
       org.elasticsearch.join.aggregations.ParentJoinAggregator.prepareSubAggs(ParentJoinAggregator.java:142)
       app//org.elasticsearch.search.aggregations.bucket.BucketsAggregator.buildSubAggsForBuckets(BucketsAggregator.java:172)
       app//org.elasticsearch.search.aggregations.bucket.BucketsAggregator.buildAggregationsForSingleBucket(BucketsAggregator.java:305)
       org.elasticsearch.join.aggregations.ParentToChildrenAggregator.buildAggregations(ParentToChildrenAggregator.java:43)

...
     2/10 snapshots sharing following 25 elements
       app//org.apache.lucene.codecs.lucene80.Lucene80DocValuesProducer$22.advanceExact(Lucene80DocValuesProducer.java:1019)
       app//org.elasticsearch.index.fielddata.ordinals.SingletonGlobalOrdinalMapping.advanceExact(SingletonGlobalOrdinalMapping.java:74)
       app//org.apache.lucene.index.SingletonSortedSetDocValues.advanceExact(SingletonSortedSetDocValues.java:82)
       org.elasticsearch.join.aggregations.ParentJoinAggregator.prepareSubAggs(ParentJoinAggregator.java:142)
       app//org.elasticsearch.search.aggregations.bucket.BucketsAggregator.buildSubAggsForBuckets(BucketsAggregator.java:172)
       app//org.elasticsearch.search.aggregations.bucket.BucketsAggregator.buildAggregationsForSingleBucket(BucketsAggregator.java:305)
       org.elasticsearch.join.aggregations.ParentToChildrenAggregator.buildAggregations(ParentToChildrenAggregator.java:43)

```
