# Jvm Heap Size & Indexing Perfmance Problem

**URL:** https://discuss.elastic.co/t/jvm-heap-size-indexing-perfmance-problem/219089
**Category:** Elasticsearch
**Created:** [February 12, 2020, 10:11pm UTC](https://discuss.elastic.co/t/jvm-heap-size-indexing-perfmance-problem/219089 "2020-02-12T22:11:49Z")
**Posts on this page:** 2
**Page:** 1

<div class="post-metadata">

### Author: ![Wisem4n](https://avatars.discourse-cdn.com/v4/letter/w/b38774/32.png) [@Wisem4n](https://discuss.elastic.co/u/Wisem4n)
#### Post date: [February 12, 2020, 10:11pm UTC](https://discuss.elastic.co/t/jvm-heap-size-indexing-perfmance-problem/219089/1 "2020-02-12T22:11:49Z")

</div>

Hi,

I use elasticsearch 7.2 on a single node computer.

Computer features:

- 64 gb ram
- 2 tb hdd (the disk which ES installed is 500 gb)
- 8 cores cpu
- Win10 OS

My ES configurations&features  
-106 indices  
-106 shards  
-0 replica  
-~150 gb total size  
-32 gb jvm heap size

The features of data I try to index  
-Most of them have almost 100 fields  
-A few of them have 1000-2500 fields (I increased max length of field property)

- All rows are numeric(long,int,double etc)
- I don't use mapping, elasticsearch makes it automatically when first document is indexing.  
-My document batch size (rows per request) is 2000. I tried between 500-15k and 2k document per request look like optimum.

I make a javascript code for indexing(it sends data with required json format by using elasticsearch.js library). At the begining, my indexing rate is between 2.5-4 mb/s. The rate is almost constant until size of indiceses reach 100-120 gb. After that, the rate of indexing has been dramaticaly decreased. Until 100-120 gb, ES can respond my requests with a really few latency, but after 120 gb size, it responds almost one time in every 10 minutes.

I try too many things to fix this situation (including the advices in your performance tunning guide) but nothing is changed.

I think my main problem is jvm heap size. Because I've realised that in kibana monitoring tool, even I don't make any indexing (or send any request) jvm heap size usage value is about 18gb/32 gb, and when I start indexing, it easly reachs 32 gb (in-circuit-breaker error occurs) in just half an hour. Because my js script keep sending request consecutively but even just 1 request takes 10 minutes for executing by elasticsearch. So, the size of requests in queue(threadpool) become enormous.

I don't understand the behaivour of jvm. In the current situation I have just 1 shard with 30 gb, a few of shards are 10-15 gb and the most of them are 4-5 gb. All shards are initialized and green.

I try to many things for understanding and solving this situation but have not achieve yet.

Can anyone explain this?  
Why elasticsearch in my computer uses %50 of total memory when the size of indexed data just %5-6 of my total harddisk.  
Why its indexing rate decreased so dramatically after 100-120 gb indexed data (1 execution per 8-10 minutes)?  
What are possible solutions?

Thank you.

---

<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: [March 11, 2020, 10:27pm UTC](https://discuss.elastic.co/t/jvm-heap-size-indexing-perfmance-problem/219089/2 "2020-03-11T22:27:02Z")

</div>

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