Hi,

I'm currently experiencing high memory usage and constant GC, and I'm 
trying to figure out why, and what I can do with it.
I'm running on 1 node, ES 1.3.4, 6GB heap. Dataset on disk is 7.8GB, around 
600.000 documents.
This is mostly time series data, that is, a lot of numeric values that is 
faceted on, plus some not_analyized strings for filtering.
We use one index per day to make deleting old data fast, with one shard. 
The mapping contains about 3700 different fields per day, currently 75000 
in total.

I have tried to enable docvalues, disable _source, disable _all and set 
everything to not_analyzed to reduce memory footprint, but it didn't help 
in this case.

Are there any other knobs and switches I can tune to reduce memory usage?

Are we just using too many fields? We chose this format because 
1. it makes it easy to create graphs in kibana with facets on the different 
fields. 
2. Simiar fields contain a lot of similar values, thus hopefully getting 
better compression than a "flatter"/more homogeneous mapping.

As you see from the heap dumps there's a about 1 million instances of FST, 
FieldReader, FieldInfo, etc. 
My understanding was that FST was used for the terms dictionary, and we 
only have numeric and not_analyzed fields. Are there any features I can 
disable?


Heap histogram from jmap after outofmemory:

num       #instances    #bytes  Class description
--------------------------------------------------------------------------
1:              985378  520274216       org.apache.lucene.util.fst.FST$Arc[]
2:              7448423 238349536       java.util.HashMap$Entry
3:              9436225 226469400       java.lang.String
4:              5172693 184341744       byte[]
5:              3942232 157689280       java.util.TreeMap$Entry
6:              997087  106762648       java.util.HashMap$Entry[]
7:              985367  102478168       org.apache.lucene.util.fst.FST
8:              4158990 99815760        org.apache.lucene.util.BytesRef
9:              985366  86712208        
org.apache.lucene.codecs.blocktree.FieldReader
10:             983946  70844112        
org.apache.lucene.codecs.lucene49.Lucene49DocValuesProducer$BinaryEntry
11:             1014191 62432544        java.lang.Object[]
12:             1005699 48273552        java.util.HashMap
13:             985721  47314608        org.apache.lucene.index.FieldInfo
14:             136955  40463928        long[]
15:             985367  39414680        
org.apache.lucene.util.fst.BytesStore
16:             2232203 35715248        java.lang.Integer
17:             986282  31561024        
java.util.Collections$UnmodifiableMap
18:             397909  28649448        org.apache.lucene.util.fst.FST$Arc
19:             582434  27956832        
org.elasticsearch.common.cache.LocalCache$StrongAccessEntry
20:             991896  23805504        java.util.ArrayList
21:             532630  17044160        
org.elasticsearch.common.util.concurrent.jsr166e.ConcurrentHashMapV8$Node
22:             988834  16344944        int[]
23:             582302  13975248        
org.elasticsearch.index.cache.filter.weighted.WeightedFilterCache$FilterCacheKey
24:             582302  13975248        
org.elasticsearch.common.cache.LocalCache$WeightedStrongValueReference


Heap histogram after restarting the application:

 num     #instances         #bytes  class name
----------------------------------------------
   1:       9735025      758087288  [C
   2:       1020815      538987880  [Lorg.apache.lucene.util.fst.FST$Arc;
   3:       7710294      246729408  java.util.HashMap$Entry
   4:       9727788      233466912  java.lang.String
   5:       5351244      186234680  [B
   6:       4083984      163359360  java.util.TreeMap$Entry
   7:       1032416      110492320  [Ljava.util.HashMap$Entry;
   8:       1020810      106164240  org.apache.lucene.util.fst.FST
   9:       4304247      103301928  org.apache.lucene.util.BytesRef
  10:       1020809       89831192  
org.apache.lucene.codecs.blocktree.FieldReader
  11:       1019357       73393704  
org.apache.lucene.codecs.lucene49.Lucene49DocValuesProducer$BinaryEntry
  12:       1051189       61103176  [Ljava.lang.Object;
  13:       1040457       49941936  java.util.HashMap
  14:       1021172       49016256  org.apache.lucene.index.FieldInfo
  15:       1020810       40832400  org.apache.lucene.util.fst.BytesStore
  16:       2312797       37004752  java.lang.Integer
  17:       1021696       32694272  java.util.Collections$UnmodifiableMap
  18:        413671       29784312  org.apache.lucene.util.fst.FST$Arc
  19:       1029315       24703560  java.util.ArrayList
  20:       1024198       16883184  [I


-
Henrik Nordvik

-- 
You received this message because you are subscribed to the Google Groups 
"elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/elasticsearch/379ae367-e0d1-4e66-bbab-022bf3a9a9ed%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to