ELASTIC VERSION: 9.3.4
I haven't changed anything in the configuration yet, but one of our hot nodes has been hitting high CPU and restarting. When it drops, the write load transfers to the other hot nodes, causing a domino effect.
I suspect the root cause is a combination of small shard sizes, too many total shards, and heavy write traffic on specific data streams. To fix this and better distribute the write load across the hot nodes, I am increasing the primary shard count to 3 and 6 for the high-traffic streams.
Additionally, I noticed our ingest nodes have very low utilization. Since we are paying for them under the ERU (Elastic Resource Unit) license, they feel like wasted spend. I am considering dropping them entirely to save on licensing costs.
Note: I wanted to share the _cat/shards output, but the log is too large to paste and I don't have an upload option here.
GET _cat/nodes?v&s=name&h=name,node.role,cpu,heap.percent,disk.used_percent,load_1m,allocated_processors
name node.role cpu heap.percent disk.used_percent load_1m
elastic-coordinating1 - 1 77 6.92 0.52
elastic-coordinating2 - 2 18 6.93 0.40
elastic-frozen1 f 0 27 86.17 0.03
elastic-frozen2 f 0 47 86.16 0.10
elastic-hot1 his 25 40 77.63 22.51
elastic-hot2 his 21 43 73.76 41.42
elastic-hot3 his 21 57 73.20 17.42
elastic-hot4 his 18 28 74.42 16.90
elastic-hot5 his 32 72 74.08 20.31
elastic-hot6 hs 28 30 76.94 46.50
elastic-ingest1 i 3 50 7.71 1.28
elastic-ingest2 i 3 34 7.45 1.81
elastic-ingest3 i 3 53 7.72 1.74
elastic-master1 m 8 65 7.13 0.14
elastic-master2 m 13 41 7.10 1.02
elastic-master3 m 1 34 6.87 0.21
elastic-ml1 lt 0 56 0.00 0.00
elastic-ml2 lt 0 66 0.00 0.00
GET _cat/allocation?v&s=node&h=node,node.node.role,shards,shards.undesired,write_load.forecast,disk.indices.forecast,disk.indices,disk.used,disk.avail,disk.total,disk.percent
node shards shards.undesired write_load.forecast disk.indices.forecast disk.indices disk.used disk.avail disk.total disk.percent
elastic-frozen1 365 0 0.0 6.3tb 0b 3.4tb 561.8gb 3.9tb 86
elastic-frozen2 130 0 0.0 3.7tb 0b 3.4tb 562.1gb 3.9tb 86
elastic-hot1 492 276 10.537364188353848 6.4tb 6.1tb 6.2tb 1.7tb 7.9tb 77
elastic-hot2 263 13 9.999951303906215 6tb 5.7tb 5.9tb 2tb 7.9tb 73
elastic-hot3 542 189 11.715867722761827 6.1tb 5.7tb 5.8tb 2.1tb 7.9tb 73
elastic-hot4 308 44 8.74606137881083 6.1tb 5.8tb 5.9tb 2tb 7.9tb 73
elastic-hot5 453 132 10.990794145662559 6.1tb 5.8tb 5.9tb 2tb 7.9tb 74
elastic-hot6 752 401 10.358227671131372 6.3tb 6tb 6.1tb 1.8tb 7.9tb 77
GET _nodes/elastic-hot6/hot_threads
::: {elastic-hot6}{tt83jQ_i2lS1fbjsijwR9w}{O7OPOSjsjjsjsIIA_Q}{elastic-hot6}{IP}{IP:9300}{hs}{9.3.4}{8000099-9060001}{nfs_group=hot_c, ml.config_version=12.0.0, transform.config_version=10.0.0, xpack.installed=true}
Hot threads at 2026-07-11T14:16:55.001Z, interval=500ms, busiestThreads=3, ignoreIdleThreads=true:
100.0% [cpu=97.1%, other=2.9%] (500ms out of 500ms) cpu usage by thread 'elasticsearch[elastic-hot6][search][T#37]'
7/10 snapshots sharing following 42 elements
app/org.apache.lucene.core@10.3.2/org.apache.lucene.codecs.lucene90.compressing.Lucene90CompressingStoredFieldsReader$BlockState.reset(Lucene90CompressingStoredFieldsReader.java:448)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.codecs.lucene90.compressing.Lucene90CompressingStoredFieldsReader.serializedDocument(Lucene90CompressingStoredFieldsReader.java:648)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.codecs.lucene90.compressing.Lucene90CompressingStoredFieldsReader.document(Lucene90CompressingStoredFieldsReader.java:669)
app/org.elasticsearch.server@9.3.4/org.elasticsearch.search.internal.FieldUsageTrackingDirectoryReader$FieldUsageTrackingLeafReader$FieldUsageTrackingStoredFieldsReader.document(FieldUsageTrackingDirectoryReader.java:258)
app/org.elasticsearch.server@9.3.4/org.elasticsearch.index.fieldvisitor.StoredFieldLoader$$Lambda/0x0000000025c8db38.accept(Unknown Source)
app/org.elasticsearch.server@9.3.4/org.elasticsearch.index.fieldvisitor.StoredFieldLoader$ReaderStoredFieldLoader.advanceTo(StoredFieldLoader.java:216)
app/org.elasticsearch.server@9.3.4/org.elasticsearch.search.lookup.ConcurrentSegmentSourceProvider$Leaf.getSource(ConcurrentSegmentSourceProvider.java:101)
app/org.elasticsearch.server@9.3.4/org.elasticsearch.search.lookup.ConcurrentSegmentSourceProvider.getSource(ConcurrentSegmentSourceProvider.java:72)
app/org.elasticsearch.server@9.3.4/org.elasticsearch.search.lookup.LeafSearchLookup.lambda$new$0(LeafSearchLookup.java:40)
app/org.elasticsearch.server@9.3.4/org.elasticsearch.search.lookup.LeafSearchLookup$$Lambda/0x0000000025b51970.get(Unknown Source)
app/org.elasticsearch.server@9.3.4/org.elasticsearch.script.AbstractFieldScript.lambda$static$0(AbstractFieldScript.java:70)
app/org.elasticsearch.server@9.3.4/org.elasticsearch.script.AbstractFieldScript$$Lambda/0x0000000024637cc0.apply(Unknown Source)
app/org.elasticsearch.server@9.3.4/org.elasticsearch.script.DynamicMap.get(DynamicMap.java:59)
org.elasticsearch.painless.PainlessScript$Script.execute(def body = params._source?.http?.request?.body?.original; if (body != null) { emit(body.toString()); }:18)
app/org.elasticsearch.server@9.3.4/org.elasticsearch.script.AbstractFieldScript.runForDoc(AbstractFieldScript.java:159)
app/org.elasticsearch.server@9.3.4/org.elasticsearch.search.runtime.AbstractStringScriptFieldQuery.matches(AbstractStringScriptFieldQuery.java:28)
app/org.elasticsearch.server@9.3.4/org.elasticsearch.search.runtime.AbstractStringScriptFieldQuery.matches(AbstractStringScriptFieldQuery.java:20)
app/org.elasticsearch.server@9.3.4/org.elasticsearch.search.runtime.AbstractScriptFieldQuery$2.matches(AbstractScriptFieldQuery.java:99)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.search.DisjunctionScorer$TwoPhase.matches(DisjunctionScorer.java:153)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.search.ConjunctionDISI$ConjunctionTwoPhaseIterator.matches(ConjunctionDISI.java:327)
app/org.elasticsearch.server@9.3.4/org.elasticsearch.search.aggregations.bucket.filter.FiltersAggregator$TwoPhaseFilterMatchingDisiWrapper.checkDocForMatch(FiltersAggregator.java:484)
app/org.elasticsearch.server@9.3.4/org.elasticsearch.search.aggregations.bucket.filter.FiltersAggregator$SingleFilterLeafCollector.collect(FiltersAggregator.java:383)
app/org.elasticsearch.server@9.3.4/org.elasticsearch.search.aggregations.LeafBucketCollector.collect(LeafBucketCollector.java:87)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.search.Weight$DefaultBulkScorer.scoreIterator(Weight.java:298)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.search.Weight$DefaultBulkScorer.score(Weight.java:280)
app/org.elasticsearch.server@9.3.4/org.elasticsearch.search.internal.CancellableBulkScorer.score(CancellableBulkScorer.java:53)
app/org.elasticsearch.server@9.3.4/org.elasticsearch.search.internal.ContextIndexSearcher.searchLeaf(ContextIndexSearcher.java:466)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:809)
app/org.elasticsearch.server@9.3.4/org.elasticsearch.search.internal.ContextIndexSearcher.search(ContextIndexSearcher.java:390)
app/org.elasticsearch.server@9.3.4/org.elasticsearch.search.internal.ContextIndexSearcher.lambda$search$3(ContextIndexSearcher.java:368)
app/org.elasticsearch.server@9.3.4/org.elasticsearch.search.internal.ContextIndexSearcher$$Lambda/0x0000000025b22220.call(Unknown Source)
java.base@26/java.util.concurrent.FutureTask.run(FutureTask.java:330)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.search.TaskExecutor$Task.run(TaskExecutor.java:173)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.search.TaskExecutor.lambda$invokeAll$1(TaskExecutor.java:98)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.search.TaskExecutor$$Lambda/0x0000000025cea938.run(Unknown Source)
app/org.elasticsearch.server@9.3.4/org.elasticsearch.common.util.concurrent.TimedRunnable.doRun(TimedRunnable.java:35)
app/org.elasticsearch.server@9.3.4/org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingAbstractRunnable.doRun(ThreadContext.java:1113)
app/org.elasticsearch.server@9.3.4/org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:27)
java.base@26/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1090)
java.base@26/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614)
java.base@26/java.lang.Thread.runWith(Thread.java:1529)
java.base@26/java.lang.Thread.run(Thread.java:1516)
2/10 snapshots sharing following 47 elements
app/org.apache.lucene.core@10.3.2/org.apache.lucene.store.DataInput.readVLong(DataInput.java:209)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.store.MemorySegmentIndexInput.readVLong(MemorySegmentIndexInput.java:292)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.codecs.lucene103.blocktree.SegmentTermsEnumFrame.loadBlock(SegmentTermsEnumFrame.java:192)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.codecs.lucene103.blocktree.SegmentTermsEnum.lambda$prepareSeekExact$1(SegmentTermsEnum.java:442)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.codecs.lucene103.blocktree.SegmentTermsEnum$$Lambda/0x0000000025696ac0.get(Unknown Source)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.index.TermStates.lambda$get$1(TermStates.java:199)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.index.TermStates$$Lambda/0x0000000025696ef8.get(Unknown Source)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.search.TermQuery$TermWeight$2.getTermsEnum(TermQuery.java:137)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.search.TermQuery$TermWeight$2.cost(TermQuery.java:182)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.search.DisjunctionMaxQuery$DisjunctionMaxWeight$1.cost(DisjunctionMaxQuery.java:178)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.search.BooleanScorerSupplier$$Lambda/0x0000000025a6b2e0.applyAsLong(Unknown Source)
java.base@26/java.util.stream.ReferencePipeline$5$1.accept(ReferencePipeline.java:248)
java.base@26/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1724)
java.base@26/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:735)
java.base@26/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:570)
java.base@26/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:560)
java.base@26/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921)
java.base@26/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:265)
java.base@26/java.util.stream.LongPipeline.reduce(LongPipeline.java:506)
java.base@26/java.util.stream.LongPipeline.min(LongPipeline.java:464)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.search.BooleanScorerSupplier.computeCost(BooleanScorerSupplier.java:84)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.search.BooleanScorerSupplier.cost(BooleanScorerSupplier.java:110)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.search.BooleanScorerSupplier.getInternal(BooleanScorerSupplier.java:132)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.search.BooleanScorerSupplier.get(BooleanScorerSupplier.java:117)
app/org.elasticsearch.server@9.3.4/org.elasticsearch.search.aggregations.bucket.filter.QueryToFilterAdapter.randomAccessScorer(QueryToFilterAdapter.java:196)
app/org.elasticsearch.server@9.3.4/org.elasticsearch.search.aggregations.bucket.filter.FiltersAggregator$Compatible.getLeafCollector(FiltersAggregator.java:296)
app/org.elasticsearch.server@9.3.4/org.elasticsearch.search.aggregations.AggregatorBase.getLeafCollector(AggregatorBase.java:228)
app/org.elasticsearch.server@9.3.4/org.elasticsearch.search.aggregations.AdaptingAggregator.getLeafCollector(AdaptingAggregator.java:88)
app/org.elasticsearch.server@9.3.4/org.elasticsearch.search.aggregations.MultiBucketCollector$1.getLeafCollector(MultiBucketCollector.java:92)
app/org.elasticsearch.server@9.3.4/org.elasticsearch.search.aggregations.AggregatorCollector.getLeafCollector(AggregatorCollector.java:36)
app/org.elasticsearch.server@9.3.4/org.elasticsearch.search.query.QueryPhaseCollector.getLeafCollector(QueryPhaseCollector.java:166)
app/org.elasticsearch.server@9.3.4/org.elasticsearch.search.internal.ContextIndexSearcher.searchLeaf(ContextIndexSearcher.java:447)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:809)
app/org.elasticsearch.server@9.3.4/org.elasticsearch.search.internal.ContextIndexSearcher.search(ContextIndexSearcher.java:390)
app/org.elasticsearch.server@9.3.4/org.elasticsearch.search.internal.ContextIndexSearcher.lambda$search$3(ContextIndexSearcher.java:368)
app/org.elasticsearch.server@9.3.4/org.elasticsearch.search.internal.ContextIndexSearcher$$Lambda/0x0000000025b22220.call(Unknown Source)
java.base@26/java.util.concurrent.FutureTask.run(FutureTask.java:330)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.search.TaskExecutor$Task.run(TaskExecutor.java:173)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.search.TaskExecutor.lambda$invokeAll$1(TaskExecutor.java:98)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.search.TaskExecutor$$Lambda/0x0000000025cea938.run(Unknown Source)
app/org.elasticsearch.server@9.3.4/org.elasticsearch.common.util.concurrent.TimedRunnable.doRun(TimedRunnable.java:35)
app/org.elasticsearch.server@9.3.4/org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingAbstractRunnable.doRun(ThreadContext.java:1113)
app/org.elasticsearch.server@9.3.4/org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:27)
java.base@26/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1090)
java.base@26/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614)
java.base@26/java.lang.Thread.runWith(Thread.java:1529)
java.base@26/java.lang.Thread.run(Thread.java:1516)
unique snapshot
app/org.apache.lucene.core@10.3.2/org.apache.lucene.codecs.lucene103.blocktree.SegmentTermsEnumFrame.loadBlock(SegmentTermsEnumFrame.java:210)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.codecs.lucene103.blocktree.SegmentTermsEnum.lambda$prepareSeekExact$1(SegmentTermsEnum.java:442)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.codecs.lucene103.blocktree.SegmentTermsEnum$$Lambda/0x0000000025696ac0.get(Unknown Source)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.index.TermStates.lambda$get$1(TermStates.java:199)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.index.TermStates$$Lambda/0x0000000025696ef8.get(Unknown Source)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.search.TermQuery$TermWeight$2.getTermsEnum(TermQuery.java:137)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.search.TermQuery$TermWeight$2.cost(TermQuery.java:182)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.search.DisjunctionMaxQuery$DisjunctionMaxWeight$1.cost(DisjunctionMaxQuery.java:178)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.search.BooleanScorerSupplier$$Lambda/0x0000000025a6b2e0.applyAsLong(Unknown Source)
java.base@26/java.util.stream.ReferencePipeline$5$1.accept(ReferencePipeline.java:248)
java.base@26/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1724)
java.base@26/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:735)
java.base@26/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:570)
java.base@26/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:560)
java.base@26/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921)
java.base@26/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:265)
java.base@26/java.util.stream.LongPipeline.reduce(LongPipeline.java:506)
java.base@26/java.util.stream.LongPipeline.min(LongPipeline.java:464)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.search.BooleanScorerSupplier.computeCost(BooleanScorerSupplier.java:84)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.search.BooleanScorerSupplier.cost(BooleanScorerSupplier.java:110)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.search.BooleanScorerSupplier.getInternal(BooleanScorerSupplier.java:132)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.search.BooleanScorerSupplier.get(BooleanScorerSupplier.java:117)
app/org.elasticsearch.server@9.3.4/org.elasticsearch.search.aggregations.bucket.filter.QueryToFilterAdapter.randomAccessScorer(QueryToFilterAdapter.java:196)
app/org.elasticsearch.server@9.3.4/org.elasticsearch.search.aggregations.bucket.filter.FiltersAggregator$Compatible.getLeafCollector(FiltersAggregator.java:296)
app/org.elasticsearch.server@9.3.4/org.elasticsearch.search.aggregations.AggregatorBase.getLeafCollector(AggregatorBase.java:228)
app/org.elasticsearch.server@9.3.4/org.elasticsearch.search.aggregations.AdaptingAggregator.getLeafCollector(AdaptingAggregator.java:88)
app/org.elasticsearch.server@9.3.4/org.elasticsearch.search.aggregations.MultiBucketCollector$1.getLeafCollector(MultiBucketCollector.java:92)
app/org.elasticsearch.server@9.3.4/org.elasticsearch.search.aggregations.AggregatorCollector.getLeafCollector(AggregatorCollector.java:36)
app/org.elasticsearch.server@9.3.4/org.elasticsearch.search.query.QueryPhaseCollector.getLeafCollector(QueryPhaseCollector.java:166)
app/org.elasticsearch.server@9.3.4/org.elasticsearch.search.internal.ContextIndexSearcher.searchLeaf(ContextIndexSearcher.java:447)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:809)
app/org.elasticsearch.server@9.3.4/org.elasticsearch.search.internal.ContextIndexSearcher.search(ContextIndexSearcher.java:390)
app/org.elasticsearch.server@9.3.4/org.elasticsearch.search.internal.ContextIndexSearcher.lambda$search$3(ContextIndexSearcher.java:368)
app/org.elasticsearch.server@9.3.4/org.elasticsearch.search.internal.ContextIndexSearcher$$Lambda/0x0000000025b22220.call(Unknown Source)
java.base@26/java.util.concurrent.FutureTask.run(FutureTask.java:330)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.search.TaskExecutor$Task.run(TaskExecutor.java:173)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.search.TaskExecutor.lambda$invokeAll$1(TaskExecutor.java:98)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.search.TaskExecutor$$Lambda/0x0000000025cea938.run(Unknown Source)
app/org.elasticsearch.server@9.3.4/org.elasticsearch.common.util.concurrent.TimedRunnable.doRun(TimedRunnable.java:35)
app/org.elasticsearch.server@9.3.4/org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingAbstractRunnable.doRun(ThreadContext.java:1113)
app/org.elasticsearch.server@9.3.4/org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:27)
java.base@26/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1090)
java.base@26/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614)
java.base@26/java.lang.Thread.runWith(Thread.java:1529)
java.base@26/java.lang.Thread.run(Thread.java:1516)
100.0% [cpu=90.7%, other=9.3%] (500ms out of 500ms) cpu usage by thread 'elasticsearch[elastic-hot6][merge][T#12]'
5/10 snapshots sharing following 33 elements
app/org.apache.lucene.core@10.3.2/org.apache.lucene.codecs.lucene90.IndexedDISI.advance(IndexedDISI.java:465)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.codecs.lucene90.IndexedDISI.nextDoc(IndexedDISI.java:560)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.codecs.lucene90.Lucene90DocValuesProducer$SparseNumericDocValues.nextDoc(Lucene90DocValuesProducer.java:499)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.codecs.lucene90.Lucene90DocValuesProducer$22.nextDoc(Lucene90DocValuesProducer.java:1062)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.codecs.DocValuesConsumer$SortedDocValuesSub.nextDoc(DocValuesConsumer.java:626)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.index.DocIDMerger$Sub.nextMappedDoc(DocIDMerger.java:60)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.index.DocIDMerger$SortedDocIDMerger.next(DocIDMerger.java:188)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.codecs.DocValuesConsumer$8.nextDoc(DocValuesConsumer.java:764)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.codecs.lucene90.Lucene90DocValuesConsumer$2$1.nextDoc(Lucene90DocValuesConsumer.java:688)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.index.SingletonSortedNumericDocValues.nextDoc(SingletonSortedNumericDocValues.java:53)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.codecs.lucene90.Lucene90DocValuesConsumer.writeValues(Lucene90DocValuesConsumer.java:368)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.codecs.lucene90.Lucene90DocValuesConsumer.doAddSortedField(Lucene90DocValuesConsumer.java:710)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.codecs.lucene90.Lucene90DocValuesConsumer.addSortedSetField(Lucene90DocValuesConsumer.java:935)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.codecs.DocValuesConsumer.mergeSortedSetField(DocValuesConsumer.java:856)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.codecs.DocValuesConsumer.merge(DocValuesConsumer.java:149)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.codecs.perfield.PerFieldDocValuesFormat$FieldsWriter.merge(PerFieldDocValuesFormat.java:150)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.index.SegmentMerger.mergeDocValues(SegmentMerger.java:188)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.index.SegmentMerger$$Lambda/0x0000000025a85e38.merge(Unknown Source)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.index.SegmentMerger.mergeWithLogging(SegmentMerger.java:314)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.index.SegmentMerger.merge(SegmentMerger.java:149)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.index.IndexWriter.mergeMiddle(IndexWriter.java:5317)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.index.IndexWriter.merge(IndexWriter.java:4778)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.index.IndexWriter$IndexWriterMergeSource.merge(IndexWriter.java:6601)
app/org.elasticsearch.server@9.3.4/org.elasticsearch.index.engine.ThreadPoolMergeScheduler.doMerge(ThreadPoolMergeScheduler.java:479)
app/org.elasticsearch.server@9.3.4/org.elasticsearch.index.engine.ThreadPoolMergeScheduler$MergeTask.run(ThreadPoolMergeScheduler.java:598)
app/org.elasticsearch.server@9.3.4/org.elasticsearch.index.engine.ThreadPoolMergeExecutorService.runMergeTask(ThreadPoolMergeExecutorService.java:370)
app/org.elasticsearch.server@9.3.4/org.elasticsearch.index.engine.ThreadPoolMergeExecutorService.lambda$enqueueMergeTaskExecution$11(ThreadPoolMergeExecutorService.java:338)
app/org.elasticsearch.server@9.3.4/org.elasticsearch.index.engine.ThreadPoolMergeExecutorService$$Lambda/0x0000000025a6de00.run(Unknown Source)
app/org.elasticsearch.server@9.3.4/org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingRunnable.run(ThreadContext.java:1046)
java.base@26/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1090)
java.base@26/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614)
java.base@26/java.lang.Thread.runWith(Thread.java:1529)
java.base@26/java.lang.Thread.run(Thread.java:1516)
5/10 snapshots sharing following 22 elements
app/org.apache.lucene.core@10.3.2/org.apache.lucene.codecs.lucene90.Lucene90DocValuesConsumer.doAddSortedField(Lucene90DocValuesConsumer.java:710)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.codecs.lucene90.Lucene90DocValuesConsumer.addSortedSetField(Lucene90DocValuesConsumer.java:935)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.codecs.DocValuesConsumer.mergeSortedSetField(DocValuesConsumer.java:856)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.codecs.DocValuesConsumer.merge(DocValuesConsumer.java:149)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.codecs.perfield.PerFieldDocValuesFormat$FieldsWriter.merge(PerFieldDocValuesFormat.java:150)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.index.SegmentMerger.mergeDocValues(SegmentMerger.java:188)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.index.SegmentMerger$$Lambda/0x0000000025a85e38.merge(Unknown Source)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.index.SegmentMerger.mergeWithLogging(SegmentMerger.java:314)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.index.SegmentMerger.merge(SegmentMerger.java:149)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.index.IndexWriter.mergeMiddle(IndexWriter.java:5317)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.index.IndexWriter.merge(IndexWriter.java:4778)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.index.IndexWriter$IndexWriterMergeSource.merge(IndexWriter.java:6601)
app/org.elasticsearch.server@9.3.4/org.elasticsearch.index.engine.ThreadPoolMergeScheduler.doMerge(ThreadPoolMergeScheduler.java:479)
app/org.elasticsearch.server@9.3.4/org.elasticsearch.index.engine.ThreadPoolMergeScheduler$MergeTask.run(ThreadPoolMergeScheduler.java:598)
app/org.elasticsearch.server@9.3.4/org.elasticsearch.index.engine.ThreadPoolMergeExecutorService.runMergeTask(ThreadPoolMergeExecutorService.java:370)
app/org.elasticsearch.server@9.3.4/org.elasticsearch.index.engine.ThreadPoolMergeExecutorService.lambda$enqueueMergeTaskExecution$11(ThreadPoolMergeExecutorService.java:338)
app/org.elasticsearch.server@9.3.4/org.elasticsearch.index.engine.ThreadPoolMergeExecutorService$$Lambda/0x0000000025a6de00.run(Unknown Source)
app/org.elasticsearch.server@9.3.4/org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingRunnable.run(ThreadContext.java:1046)
java.base@26/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1090)
java.base@26/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614)
java.base@26/java.lang.Thread.runWith(Thread.java:1529)
java.base@26/java.lang.Thread.run(Thread.java:1516)
100.0% [cpu=73.6%, other=26.4%] (500ms out of 500ms) cpu usage by thread 'elasticsearch[elastic-hot6][merge][T#10]'
7/10 snapshots sharing following 23 elements
app/org.apache.lucene.core@10.3.2/org.apache.lucene.codecs.lucene90.LZ4WithPresetDictCompressionMode$LZ4WithPresetDictDecompressor.decompress(LZ4WithPresetDictCompressionMode.java:136)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.codecs.lucene90.compressing.Lucene90CompressingStoredFieldsReader$BlockState.doReset(Lucene90CompressingStoredFieldsReader.java:524)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.codecs.lucene90.compressing.Lucene90CompressingStoredFieldsReader$BlockState.reset(Lucene90CompressingStoredFieldsReader.java:448)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.codecs.lucene90.compressing.Lucene90CompressingStoredFieldsReader.serializedDocument(Lucene90CompressingStoredFieldsReader.java:648)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.codecs.lucene90.compressing.Lucene90CompressingStoredFieldsWriter.copyOneDoc(Lucene90CompressingStoredFieldsWriter.java:514)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.codecs.lucene90.compressing.Lucene90CompressingStoredFieldsWriter.merge(Lucene90CompressingStoredFieldsWriter.java:636)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.index.SegmentMerger.mergeFields(SegmentMerger.java:248)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.index.SegmentMerger$$Lambda/0x0000000025a72438.merge(Unknown Source)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.index.SegmentMerger.mergeWithLogging(SegmentMerger.java:289)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.index.SegmentMerger.merge(SegmentMerger.java:119)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.index.IndexWriter.mergeMiddle(IndexWriter.java:5317)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.index.IndexWriter.merge(IndexWriter.java:4778)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.index.IndexWriter$IndexWriterMergeSource.merge(IndexWriter.java:6601)
app/org.elasticsearch.server@9.3.4/org.elasticsearch.index.engine.ThreadPoolMergeScheduler.doMerge(ThreadPoolMergeScheduler.java:479)
app/org.elasticsearch.server@9.3.4/org.elasticsearch.index.engine.ThreadPoolMergeScheduler$MergeTask.run(ThreadPoolMergeScheduler.java:598)
app/org.elasticsearch.server@9.3.4/org.elasticsearch.index.engine.ThreadPoolMergeExecutorService.runMergeTask(ThreadPoolMergeExecutorService.java:370)
app/org.elasticsearch.server@9.3.4/org.elasticsearch.index.engine.ThreadPoolMergeExecutorService.lambda$enqueueMergeTaskExecution$11(ThreadPoolMergeExecutorService.java:338)
app/org.elasticsearch.server@9.3.4/org.elasticsearch.index.engine.ThreadPoolMergeExecutorService$$Lambda/0x0000000025a6de00.run(Unknown Source)
app/org.elasticsearch.server@9.3.4/org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingRunnable.run(ThreadContext.java:1046)
java.base@26/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1090)
java.base@26/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614)
java.base@26/java.lang.Thread.runWith(Thread.java:1529)
java.base@26/java.lang.Thread.run(Thread.java:1516)
2/10 snapshots sharing following 23 elements
app/org.apache.lucene.core@10.3.2/org.apache.lucene.codecs.lucene90.LZ4WithPresetDictCompressionMode$LZ4WithPresetDictDecompressor.decompress(LZ4WithPresetDictCompressionMode.java:105)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.codecs.lucene90.compressing.Lucene90CompressingStoredFieldsReader$BlockState.doReset(Lucene90CompressingStoredFieldsReader.java:524)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.codecs.lucene90.compressing.Lucene90CompressingStoredFieldsReader$BlockState.reset(Lucene90CompressingStoredFieldsReader.java:448)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.codecs.lucene90.compressing.Lucene90CompressingStoredFieldsReader.serializedDocument(Lucene90CompressingStoredFieldsReader.java:648)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.codecs.lucene90.compressing.Lucene90CompressingStoredFieldsWriter.copyOneDoc(Lucene90CompressingStoredFieldsWriter.java:514)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.codecs.lucene90.compressing.Lucene90CompressingStoredFieldsWriter.merge(Lucene90CompressingStoredFieldsWriter.java:636)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.index.SegmentMerger.mergeFields(SegmentMerger.java:248)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.index.SegmentMerger$$Lambda/0x0000000025a72438.merge(Unknown Source)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.index.SegmentMerger.mergeWithLogging(SegmentMerger.java:289)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.index.SegmentMerger.merge(SegmentMerger.java:119)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.index.IndexWriter.mergeMiddle(IndexWriter.java:5317)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.index.IndexWriter.merge(IndexWriter.java:4778)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.index.IndexWriter$IndexWriterMergeSource.merge(IndexWriter.java:6601)
app/org.elasticsearch.server@9.3.4/org.elasticsearch.index.engine.ThreadPoolMergeScheduler.doMerge(ThreadPoolMergeScheduler.java:479)
app/org.elasticsearch.server@9.3.4/org.elasticsearch.index.engine.ThreadPoolMergeScheduler$MergeTask.run(ThreadPoolMergeScheduler.java:598)
app/org.elasticsearch.server@9.3.4/org.elasticsearch.index.engine.ThreadPoolMergeExecutorService.runMergeTask(ThreadPoolMergeExecutorService.java:370)
app/org.elasticsearch.server@9.3.4/org.elasticsearch.index.engine.ThreadPoolMergeExecutorService.lambda$enqueueMergeTaskExecution$11(ThreadPoolMergeExecutorService.java:338)
app/org.elasticsearch.server@9.3.4/org.elasticsearch.index.engine.ThreadPoolMergeExecutorService$$Lambda/0x0000000025a6de00.run(Unknown Source)
app/org.elasticsearch.server@9.3.4/org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingRunnable.run(ThreadContext.java:1046)
java.base@26/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1090)
java.base@26/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614)
java.base@26/java.lang.Thread.runWith(Thread.java:1529)
java.base@26/java.lang.Thread.run(Thread.java:1516)
unique snapshot
app/org.apache.lucene.core@10.3.2/org.apache.lucene.util.compress.LZ4.compressWithDictionary(LZ4.java:558)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.codecs.lucene90.LZ4WithPresetDictCompressionMode$LZ4WithPresetDictCompressor.doCompress(LZ4WithPresetDictCompressionMode.java:167)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.codecs.lucene90.LZ4WithPresetDictCompressionMode$LZ4WithPresetDictCompressor.compress(LZ4WithPresetDictCompressionMode.java:184)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.codecs.lucene90.compressing.Lucene90CompressingStoredFieldsWriter.flush(Lucene90CompressingStoredFieldsWriter.java:263)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.codecs.lucene90.compressing.Lucene90CompressingStoredFieldsWriter.finishDocument(Lucene90CompressingStoredFieldsWriter.java:195)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.codecs.lucene90.compressing.Lucene90CompressingStoredFieldsWriter.copyOneDoc(Lucene90CompressingStoredFieldsWriter.java:518)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.codecs.lucene90.compressing.Lucene90CompressingStoredFieldsWriter.merge(Lucene90CompressingStoredFieldsWriter.java:636)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.index.SegmentMerger.mergeFields(SegmentMerger.java:248)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.index.SegmentMerger$$Lambda/0x0000000025a72438.merge(Unknown Source)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.index.SegmentMerger.mergeWithLogging(SegmentMerger.java:289)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.index.SegmentMerger.merge(SegmentMerger.java:119)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.index.IndexWriter.mergeMiddle(IndexWriter.java:5317)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.index.IndexWriter.merge(IndexWriter.java:4778)
app/org.apache.lucene.core@10.3.2/org.apache.lucene.index.IndexWriter$IndexWriterMergeSource.merge(IndexWriter.java:6601)
app/org.elasticsearch.server@9.3.4/org.elasticsearch.index.engine.ThreadPoolMergeScheduler.doMerge(ThreadPoolMergeScheduler.java:479)
app/org.elasticsearch.server@9.3.4/org.elasticsearch.index.engine.ThreadPoolMergeScheduler$MergeTask.run(ThreadPoolMergeScheduler.java:598)
app/org.elasticsearch.server@9.3.4/org.elasticsearch.index.engine.ThreadPoolMergeExecutorService.runMergeTask(ThreadPoolMergeExecutorService.java:370)
app/org.elasticsearch.server@9.3.4/org.elasticsearch.index.engine.ThreadPoolMergeExecutorService.lambda$enqueueMergeTaskExecution$11(ThreadPoolMergeExecutorService.java:338)
app/org.elasticsearch.server@9.3.4/org.elasticsearch.index.engine.ThreadPoolMergeExecutorService$$Lambda/0x0000000025a6de00.run(Unknown Source)
app/org.elasticsearch.server@9.3.4/org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingRunnable.run(ThreadContext.java:1046)
java.base@26/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1090)
java.base@26/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614)
java.base@26/java.lang.Thread.runWith(Thread.java:1529)
java.base@26/java.lang.Thread.run(Thread.java:1516)
Load has been adjusted via that change i made by increasing number of primary shards.
But let me share the metrics of today's