# How to calculate read/write throughput at cluster level?

**URL:** <https://discuss.elastic.co/t/how-to-calculate-read-write-throughput-at-cluster-level/278775>\
**Category:** Elasticsearch\
**Created:** [July 15, 2021, 11:46am UTC](https://discuss.elastic.co/t/how-to-calculate-read-write-throughput-at-cluster-level/278775 "2021-07-15T11:46:46Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Bhagwati\_Malav](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/bhagwati_malav/32/91665_2.png) [@Bhagwati\_Malav](https://discuss.elastic.co/u/Bhagwati_Malav)\
**Post date:** [July 15, 2021, 11:46am UTC](https://discuss.elastic.co/t/how-to-calculate-read-write-throughput-at-cluster-level/278775/1 "2021-07-15T11:46:46Z")

</div>

I am working on designing es cluster with below given setup

master nodes 3 (m5.a large) 2vcpu, 8gb  
data nodes 2 (m5.ax large) 4vcpu, 16 gb

Keeping default elastic configuration currently.  
read thread pool - 7  
write thread pool -4

Calculation on throughput

Read  
Data Node - 2  
Threads per data node - 7  
Shards - 2  
Replica- 1  
RPS - (2 \* 7)/2 = (7 \* 1000)/ 50 = 140 reqs/sec (Considering 50 ms response time)  
RPM - 140 \* 60 = 8400 reqs/sec

Write  
Data Node - 2  
Threads per data Node - 4  
Shards - 2  
RPS - (2 \* 4)= 8 \* (1000/20) = 400 reqs/sec (assuming 20 ms response time for write)  
RPM = 400 \* 60 = 24000

Please check these numbers, and let me know your suggestion.  
Thanks.

---

<div class="post-metadata">

**Author:** ![spinscale](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/spinscale/32/25011_2.png) [@spinscale](https://discuss.elastic.co/u/spinscale)\
**Post date:** [July 15, 2021, 12:19pm UTC](https://discuss.elastic.co/t/how-to-calculate-read-write-throughput-at-cluster-level/278775/2 "2021-07-15T12:19:49Z")

</div>

There is no such thing as a single excel sheet where you type in the number of documents and get back the throughput. Everything is an approximation because of many different factors like document, mapping complexity, queries per second, query complexity, etc...

I would advise you to go ahead and benchmark your cluster with your own data. You can start simple with a single node, having a single shard and add data to it while querying it. See if it holds up your SLAs reagrding reading and writing. At some point you found out the sweet spot per shard and can start scaling based on nodes.

There is also a benchmarking tool for Elasticsearch called [rally](https://github.com/elastic/rally), you should take a look at.

Hope that helps as a start.

---

<div class="post-metadata">

**Author:** ![Bhagwati\_Malav](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/bhagwati_malav/32/91665_2.png) [@Bhagwati\_Malav](https://discuss.elastic.co/u/Bhagwati_Malav)\
**Post date:** [July 15, 2021, 12:35pm UTC](https://discuss.elastic.co/t/how-to-calculate-read-write-throughput-at-cluster-level/278775/3 "2021-07-15T12:35:44Z")

</div>

Thanks a lot @spinscale . Was just trying to figure out number in terms of approximation.  
Will explore given benchmarking tool.

---

<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:** [August 12, 2021, 12:36pm UTC](https://discuss.elastic.co/t/how-to-calculate-read-write-throughput-at-cluster-level/278775/4 "2021-08-12T12:36:08Z")

</div>

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